import { useEffect, useState } from 'react'; export function useDebouncedState(value: T, delay: number): ReturnType> { const [state, setState] = useState(value); useEffect(() => { const handler = setTimeout(() => setState(value), delay); return () => clearTimeout(handler); }, [value, delay]); return [state, setState]; }