import { useEffect, useState } from "react" export interface TransitionProps{ isMounted:boolean delay:number } function useTransition(isMounted: boolean, delayTime: number) { const [ shouldRender, setShouldRender ] = useState(false); useEffect(() => { let timeoutId:number if (isMounted && !shouldRender) { setShouldRender(true); } else if(!isMounted && shouldRender) { timeoutId = window.setTimeout( () => setShouldRender(false), delayTime ); } return () => clearTimeout(timeoutId); }, [isMounted, delayTime, shouldRender]); return shouldRender; } export default useTransition;