react-hooks-toolbox
Version:
React hooks toolbox
32 lines (24 loc) • 747 B
JavaScript
exports.__esModule = true;
exports.useDebounce = useDebounce;
var _react = require("react");
function useDebounce(data, delay) {
var handler = (0, _react.useRef)();
var _useState = (0, _react.useState)(data),
value = _useState[0],
setValue = _useState[1];
var optionsString = void 0;
try {
optionsString = JSON.stringify(data);
} catch (err) {}
(0, _react.useEffect)(function () {
handler.current = setTimeout(function () {
setValue(data);
}, delay);
return function () {
clearTimeout(handler.current);
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [optionsString, delay]);
return value;
}
;