UNPKG

@janus-idp/shared-react

Version:

Shared code for utils, types, and React components for the Janus frontend plugins.

29 lines (23 loc) 927 B
'use strict'; 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