@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
JavaScript
;
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;