UNPKG

@modern-kit/react

Version:
32 lines (29 loc) 774 B
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