@janus-idp/shared-react
Version:
Shared code for utils, types, and React components for the Janus frontend plugins.
29 lines (23 loc) • 927 B
JavaScript
;
var React = require('react');
var lodash = require('lodash');
var useDeepCompareMemoize = require('./useDeepCompareMemoize.cjs.js');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
const useDebounceCallback = (callback, timeout = 500, debounceParams = {
leading: false,
trailing: true
}) => {
const memDebounceParams = useDeepCompareMemoize.useDeepCompareMemoize(debounceParams);
const callbackRef = React__default.default.useRef();
callbackRef.current = callback;
return React__default.default.useMemo(() => {
return lodash.debounce(
(...args) => callbackRef.current?.(...args),
timeout,
memDebounceParams
);
}, [memDebounceParams, timeout]);
};
exports.useDebounceCallback = useDebounceCallback;
//# sourceMappingURL=debounce.cjs.js.map