import { useCallback, useRef } from "react"; export function useDebounceCallback unknown>( callback?: T, delay?: number ): T { const timeoutRef = useRef(null); const debouncedCallback = useCallback((...args: Parameters) => { if (timeoutRef.current !== null) { clearTimeout(timeoutRef.current); } timeoutRef.current = window.setTimeout(() => { callback?.(...args); }, delay ?? 200); }, [callback, delay]); return debouncedCallback as T; }