test_task_crm/frontend/src/hooks/use-debounce.ts

13 lines
334 B
TypeScript

import { useEffect, useState } from 'react'
export const useDebounce = <T>(value: T, delay = 300) => {
const [debounced, setDebounced] = useState(value)
useEffect(() => {
const timer = window.setTimeout(() => setDebounced(value), delay)
return () => window.clearTimeout(timer)
}, [value, delay])
return debounced
}