You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailchat/shared/hooks/useMountedState.ts

19 lines
439 B
TypeScript

import { useCallback, useEffect, useRef } from 'react';
// Reference: https://github.com/streamich/react-use/blob/master/src/useMountedState.ts
export function useMountedState(): () => boolean {
const mountedRef = useRef<boolean>(false);
const get = useCallback(() => mountedRef.current, []);
useEffect(() => {
mountedRef.current = true;
return () => {
mountedRef.current = false;
};
}, []);
return get;
}