@modern-kit/react
Version:
32 lines (29 loc) • 774 B
JavaScript
import { Children, cloneElement } from 'react';
import { useDebounce } from '../../hooks/useDebounce/index.mjs';
import { isFunction } from '@modern-kit/utils';
import '../../hooks/useUnmount/index.mjs';
import '../../hooks/usePreservedCallback/index.mjs';
const DebounceHandler = ({
children,
capture,
wait,
options
}) => {
const child = Children.only(children);
const debouncedCallback = useDebounce(
(...args) => {
const childProps = child?.props;
if (!childProps) return;
if (isFunction(childProps[capture])) {
return childProps[capture](...args);
}
},
wait,
options
);
return cloneElement(child, {
[capture]: debouncedCallback
});
};
export { DebounceHandler };
//# sourceMappingURL=index.mjs.map