Skip to content

Commit d670e85

Browse files
committed
feat: 🎸 useWillMount and documentation update
1 parent 9003001 commit d670e85

9 files changed

+25
-14
lines changed

README.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
> React lifecycle turned into dev friendly hooks
1111
12-
- [Docs](http://bettertyped.github.io/react-lifecycle-hooks/)
1312
- [Better Typed](https://github.com/BetterTyped)
1413

1514
## Features
@@ -33,12 +32,20 @@ yarn add @better-typed/react-lifecycle-hooks
3332

3433
```tsx
3534
import React from "react";
36-
import { useDidMount, useDidRender, useDidUpdate, useWillUnmount } from "@better-typed/react-lifecycle-hooks";
35+
import { useDidMount, useDidRender, useDidUpdate, useWillUnmount,useIsMounted, useWillMount } from "@better-typed/react-lifecycle-hooks";
3736

3837
const MyComponent: React.FC = () => {
3938
const [isOpen, setIsOpen] = React.useState(false)
4039

41-
// Called first
40+
// returns ref with the mounted boolean state
41+
const mounted = useIsMounted()
42+
43+
// Called before mount
44+
useWillMount(() => {
45+
// ...
46+
})
47+
48+
// Called on component mount
4249
useDidMount(() => {
4350
// ...
4451
})
@@ -53,7 +60,7 @@ const MyComponent: React.FC = () => {
5360
// ...
5461
}, [isOpen])
5562

56-
// Called when isOpen change, also on mount
63+
// Called when isOpen change but also on mount
5764
useDidUpdate(() => {
5865
// ...
5966
}, [isOpen], true)

src/hooks/use-did-mount.hook.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,3 @@ import { useEffect } from "react";
22

33
export const useDidMount = (callback: VoidFunction | (() => VoidFunction)) =>
44
useEffect(callback, []);
5-
6-
export default useDidMount;

src/hooks/use-did-render.hook.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,3 @@ import { useLayoutEffect } from "react";
22

33
export const useDidRender = (callback: VoidFunction, dependencies: any[] = []) =>
44
useLayoutEffect(callback, dependencies);
5-
6-
export default useDidRender;

src/hooks/use-did-update.hook.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,3 @@ export const useDidUpdate = (
1616
return callback();
1717
}, dependencies);
1818
};
19-
20-
export default useDidUpdate;

src/hooks/use-force-update.hook.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { useState } from "react";
2+
3+
export const useForceUpdate = () => {
4+
const [, rerender] = useState(0);
5+
6+
return () => rerender((prev) => prev + 1);
7+
};

src/hooks/use-is-mounted.hook.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,3 @@ export const useIsMounted = () => {
1010
}, []);
1111
return componentIsMounted.current;
1212
};
13-
14-
export default useIsMounted;

src/hooks/use-will-mount.hook.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { useState } from "react";
2+
3+
export const useWillMount = (callback: VoidFunction) => {
4+
useState(callback);
5+
};

src/hooks/use-will-unmount.hook.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
import { useEffect } from "react";
22

33
export const useWillUnmount = (callback: VoidFunction) => useEffect(() => callback, []);
4-
5-
export default useWillUnmount;

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// export * from "./lib" // export library entry point
22

3+
export * from "./hooks/use-force-update.hook";
4+
export * from "./hooks/use-will-mount.hook";
35
export * from "./hooks/use-did-mount.hook";
46
export * from "./hooks/use-did-render.hook";
57
export * from "./hooks/use-did-update.hook";

0 commit comments

Comments
 (0)