Jesus sucks
This commit is contained in:
33
backend/frontend/node_modules/@restart/hooks/esm/useMounted.js
generated
vendored
Normal file
33
backend/frontend/node_modules/@restart/hooks/esm/useMounted.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
import { useRef, useEffect } from 'react';
|
||||
|
||||
/**
|
||||
* Track whether a component is current mounted. Generally less preferable than
|
||||
* properlly canceling effects so they don't run after a component is unmounted,
|
||||
* but helpful in cases where that isn't feasible, such as a `Promise` resolution.
|
||||
*
|
||||
* @returns a function that returns the current isMounted state of the component
|
||||
*
|
||||
* ```ts
|
||||
* const [data, setData] = useState(null)
|
||||
* const isMounted = useMounted()
|
||||
*
|
||||
* useEffect(() => {
|
||||
* fetchdata().then((newData) => {
|
||||
* if (isMounted()) {
|
||||
* setData(newData);
|
||||
* }
|
||||
* })
|
||||
* })
|
||||
* ```
|
||||
*/
|
||||
export default function useMounted() {
|
||||
const mounted = useRef(true);
|
||||
const isMounted = useRef(() => mounted.current);
|
||||
useEffect(() => {
|
||||
mounted.current = true;
|
||||
return () => {
|
||||
mounted.current = false;
|
||||
};
|
||||
}, []);
|
||||
return isMounted.current;
|
||||
}
|
||||
Reference in New Issue
Block a user