UNPKG

@jk-core/utils

Version:
17 lines (13 loc) 511 B
import { useCallback, useRef } from 'react'; /* eslint-disable @typescript-eslint/no-explicit-any */ type Procedure = (...args: any[]) => void; const useDebounce = (func: Procedure, delay: number): Procedure => { const timeoutId = useRef<ReturnType<typeof setTimeout>>(); return useCallback((...args: any[]) => { if (timeoutId.current) clearTimeout(timeoutId.current); timeoutId.current = setTimeout(() => { func(...args); }, delay); }, [func, delay]); }; export default useDebounce;