a tool for shared writing and social publishing
1import { useEffect, useState, useRef } from "react"; 2 3export function useDebouncedEffect( 4 fn: () => void, 5 delay: number, 6 deps: React.DependencyList = [], 7): void { 8 useEffect(() => { 9 const handler = setTimeout(() => { 10 fn(); 11 }, delay); 12 13 return () => { 14 clearTimeout(handler); 15 }; 16 // eslint-disable-next-line react-hooks/exhaustive-deps 17 }, [...deps, delay]); 18}