UNPKG

871 BJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.default = useDebouncedCallback;
5
6var _react = require("react");
7
8var _useTimeout = _interopRequireDefault(require("./useTimeout"));
9
10function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12/**
13 * Creates a debounced function that will invoke the input function after the
14 * specified delay.
15 *
16 * @param fn a function that will be debounced
17 * @param delay The milliseconds delay before invoking the function
18 */
19function useDebouncedCallback(fn, delay) {
20 var timeout = (0, _useTimeout.default)();
21 return (0, _react.useCallback)(function () {
22 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
23 args[_key] = arguments[_key];
24 }
25
26 timeout.set(function () {
27 fn.apply(void 0, args);
28 }, delay);
29 }, [fn, delay]);
30}
\No newline at end of file