@modern-kit/react
Version:
34 lines (30 loc) • 823 B
JavaScript
;
var React = require('react');
var hooksUseDebounce = require('../../hooks/useDebounce/index.cjs');
var utils = require('@modern-kit/utils');
require('../../hooks/useUnmount/index.cjs');
require('../../hooks/usePreservedCallback/index.cjs');
const DebounceHandler = ({
children,
capture,
wait,
options
}) => {
const child = React.Children.only(children);
const debouncedCallback = hooksUseDebounce.useDebounce(
(...args) => {
const childProps = child?.props;
if (!childProps) return;
if (utils.isFunction(childProps[capture])) {
return childProps[capture](...args);
}
},
wait,
options
);
return React.cloneElement(child, {
[capture]: debouncedCallback
});
};
exports.DebounceHandler = DebounceHandler;
//# sourceMappingURL=index.cjs.map