import { useCallback, useRef } from 'react'; export const useDebounceCallback = any>( callback: T, delay = 250, ) => { const timeout = useRef(0); const debouncedCallback = useCallback( (...args: Parameters) => { clearTimeout(timeout.current); timeout.current = setTimeout(() => { callback(...args); }, delay); }, [callback, delay], ); return debouncedCallback; };