import { useEffect } from 'react'; import { useCallbackRef } from './use-callback-ref'; /** * * @param cb Callback * @param timeout ms of interval, set to 0 to turn of */ export function useInterval(cb: () => void, timeout: number) { const cbRef = useCallbackRef(cb); useEffect(() => { if (timeout) { const cb = () => cbRef.current(); const interval = setInterval(cb, timeout); return () => clearInterval(interval); } }, [timeout, cbRef]); }