this repo has no description
1import { useEffect, useRef } from 'preact/hooks';
2
3function useInterval(fn, delay, deps, immediate) {
4 const savedCallback = useRef(fn);
5 useEffect(() => {
6 savedCallback.current = fn;
7 }, [fn, deps]);
8
9 useEffect(() => {
10 if (!immediate || delay === null || delay === false) return;
11 savedCallback.current();
12 }, [immediate]);
13
14 useEffect(() => {
15 if (delay === null || delay === false) return;
16 const tick = () => savedCallback.current();
17 const id = setInterval(tick, delay);
18 return () => clearInterval(id);
19 }, [delay]);
20}
21
22export default useInterval;