UNPKG

@janus-idp/shared-react

Version:

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

23 lines (20 loc) 652 B
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