github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/ui/dashboard/src/hooks/useDebouncedEffect.ts (about)

     1  import { useCallback, useEffect } from "react";
     2  
     3  const useDebouncedEffect = (effect, delay, deps) => {
     4    const callback = useCallback(effect, deps); // eslint-disable-line react-hooks/exhaustive-deps
     5  
     6    useEffect(() => {
     7      const handler = setTimeout(() => {
     8        callback();
     9      }, delay);
    10  
    11      return () => {
    12        clearTimeout(handler);
    13      };
    14    }, [callback, delay]);
    15  };
    16  
    17  export default useDebouncedEffect;