UNPKG

@dnanpm/styleguide

Version:

DNA Styleguide repository provides the set of components and theme object used in various DNA projects.

24 lines (19 loc) 662 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); const DEFAULT_DELAY = 400; const useDebounce = ( // TODO: Eventually define generic type for function arguments if needed // callback: <T extends (...args: Parameters<T>) => void>(...args: T[]) => void, callback, delay = DEFAULT_DELAY) => { const debounce = React.useRef(); return React.useCallback(() => { if (debounce.current) { clearTimeout(debounce.current); } debounce.current = setTimeout(() => { callback(); }, delay); }, [callback, delay]); }; exports.default = useDebounce;