@janus-idp/shared-react
Version:
Shared code for utils, types, and React components for the Janus frontend plugins.
23 lines (20 loc) • 652 B
JavaScript
import React from 'react';
import { debounce } from 'lodash';
import { useDeepCompareMemoize } from './useDeepCompareMemoize.esm.js';
const useDebounceCallback = (callback, timeout = 500, debounceParams = {
leading: false,
trailing: true
}) => {
const memDebounceParams = useDeepCompareMemoize(debounceParams);
const callbackRef = React.useRef();
callbackRef.current = callback;
return React.useMemo(() => {
return debounce(
(...args) => callbackRef.current?.(...args),
timeout,
memDebounceParams
);
}, [memDebounceParams, timeout]);
};
export { useDebounceCallback };
//# sourceMappingURL=debounce.esm.js.map