import { useEffect, useState } from 'react'; export function useDebounce(value: any, delay: number) { // State and setters for debounced value const [debouncedValue, setDebouncedValue] = useState(value); useEffect(() => { // Update debounced value after delay const handler = setTimeout(() => { setDebouncedValue(value); }, delay); return () => { clearTimeout(handler); }; }, [value, delay]); // Only re-call effect if value or delay changes return debouncedValue; }