import { useState, useEffect } from 'react'; /** * A custom React hook for debouncing a value. * Useful for delaying search queries or expensive computations. * @param {any} value - The value to debounce. * @param {number} delay - The delay in milliseconds. * @returns {any} The debounced value. */ function useDebounce(value, delay) { const [debouncedValue, setDebouncedValue] = useState(value); useEffect(() => { const handler = setTimeout(() => { setDebouncedValue(value); }, delay); return () => { clearTimeout(handler); }; }, [value, delay]); return debouncedValue; }