@platform/react
Version:
React refs and helpers.
22 lines (21 loc) • 768 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useDebounce = void 0;
var react_1 = require("react");
function useDebounce(value, msecs, onChanged) {
var _a = (0, react_1.useState)(value), debouncedValue = _a[0], setDebouncedValue = _a[1];
(0, react_1.useEffect)(function () {
var change = function () {
var isChanged = value !== debouncedValue;
if (isChanged) {
setDebouncedValue(value);
if (onChanged)
onChanged(value);
}
};
var timeout = setTimeout(change, msecs);
return function () { return clearTimeout(timeout); };
}, [value]);
return debouncedValue;
}
exports.useDebounce = useDebounce;