import * as React from 'react' /** * `useInterval()` hook stolen from Dan's blog: * https://overreacted.io/making-setinterval-declarative-with-react-hooks/ */ export default function useInterval(callback: () => void, delay: number = 1000) { const savedCallback = React.useRef() // Remember the latest callback. React.useEffect(() => { savedCallback.current = callback }, [callback]) // Set up the interval. React.useEffect(() => { function tick() { savedCallback.current() } const id = setInterval(tick, delay) return () => clearInterval(id) }, [delay]) }