UNPKG

@modern-kit/react

Version:
20 lines (16 loc) 757 B
'use strict'; var React = require('react'); var utils = require('@modern-kit/utils'); var hooksUseUnmount = require('../useUnmount/index.cjs'); var hooksUsePreservedCallback = require('../usePreservedCallback/index.cjs'); function useThrottle(callback, wait, options = {}) { const callbackAction = hooksUsePreservedCallback.usePreservedCallback(callback); const { signal, leading = true, trailing = true } = options ?? {}; const throttled = React.useMemo(() => { return utils.throttle(callbackAction, wait, { signal, leading, trailing }); }, [callbackAction, wait, signal, leading, trailing]); hooksUseUnmount.useUnmount(() => throttled.cancel()); return throttled; } exports.useThrottle = useThrottle; //# sourceMappingURL=index.cjs.map