@modern-kit/react
Version:
46 lines (42 loc) • 1.04 kB
JavaScript
;
var utils = require('@modern-kit/utils');
var React = require('react');
const EventExtender = ({
children,
capture,
shouldAwait = false,
beforeEvent,
afterEvent
}) => {
const child = React.Children.only(children);
const asyncEvent = async (eventType) => {
if (beforeEvent) {
await beforeEvent(eventType);
}
const originEvent = child.props[capture];
if (utils.isFunction(originEvent)) {
await originEvent(eventType);
}
if (afterEvent) {
await afterEvent(eventType);
}
};
const syncEvent = (eventType) => {
if (beforeEvent) {
beforeEvent(eventType);
}
const originEvent = child.props[capture];
if (utils.isFunction(originEvent)) {
originEvent(eventType);
}
if (afterEvent) {
afterEvent(eventType);
}
};
const enhancedProps = {
[capture]: shouldAwait ? asyncEvent : syncEvent
};
return React.cloneElement(child, enhancedProps);
};
exports.EventExtender = EventExtender;
//# sourceMappingURL=index.cjs.map