import { useEffect, useRef, useState } from 'react'; export function useDebouncedValue(value: T, delay = 1000) { const [state, setState] = useState(value); const timeout = useRef(); useEffect(() => { clearTimeout(timeout.current ?? 0); timeout.current = setTimeout(() => setState(value), delay); }, [value, delay]); return state; }