UNPKG

agenda-paper

Version:

Show your daily agenda on an ePaper display

22 lines (17 loc) 500 B
import { useEffect, useLayoutEffect, useRef } from 'react'; const useInterval = (callback: () => void, delay: number | null) => { const savedCallback = useRef(callback); useLayoutEffect(() => { savedCallback.current = callback; }, [callback]); useEffect(() => { const tick = () => { savedCallback.current(); }; if (delay !== null) { const id = setInterval(tick, delay); return () => clearInterval(id); } }, [delay]); }; export default useInterval;