useTimeout.ts
1 import { useEffect, useState } from 'react' 2 3 export function useTimeout(delay: number, resetTrigger?: number): boolean { 4 const [isElapsed, setIsElapsed] = useState(false) 5 6 useEffect(() => { 7 setIsElapsed(false) 8 const timer = setTimeout(setIsElapsed, delay, true) 9 10 return () => clearTimeout(timer) 11 }, [delay, resetTrigger]) 12 13 return isElapsed 14 }