UNPKG

@modern-kit/react

Version:
46 lines (42 loc) 1.04 kB
'use strict'; 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