UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

22 lines (18 loc) 510 B
import { useRef, useCallback } from 'react' export const useDebouncedCallback = <A extends unknown[]>( callback: (...args: A) => void, delay: number ) => { const timeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined) return useCallback( (...args: A) => { const handler = () => { clearTimeout(timeout.current) callback(...args) } clearTimeout(timeout.current) timeout.current = setTimeout(handler, delay) }, [callback, delay] ) }