All files / app/hooks use-interval.ts

0% Statements 0/10
100% Branches 0/0
0% Functions 0/6
0% Lines 0/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                                       
import { useEffect, useRef } from 'react';
 
export function useInterval(callback: () => void, delay: number) {
  // eslint-disable-next-line @typescript-eslint/no-empty-function
  const savedCallback = useRef(() => {});
 
  useEffect(() => {
    savedCallback.current = callback;
  });
 
  useEffect(() => {
    function tick() {
      savedCallback.current();
    }
 
    const id = setInterval(tick, delay);
    return () => clearInterval(id);
  }, [delay]);
}