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;