import { useEffect , useState } from 'react' ; export default function useDebounce < T > ( value , delay ) { const [ debouncedValue , setDebouncedValue ] = useState < T > ( value ) ; useEffect ( ( ) => { const handler = setTimeout ( ( ) => { setDebouncedValue ( value ) ; } , delay ) ; return ( ) => { clearTimeout ( handler ) ; } ; } , [ value , delay ] ) ; return debouncedValue ; }