@wordpress/components
Version:
UI components for WordPress.
47 lines (40 loc) • 998 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mergeEventHandlers = mergeEventHandlers;
/**
* Merges event handlers together.
*
* @template TEvent
* @param handler
* @param otherHandler
*/
function mergeEvent(handler, otherHandler) {
return event => {
if (typeof handler === 'function') {
handler(event);
}
if (typeof otherHandler === 'function') {
otherHandler(event);
}
};
}
/**
* Merges two sets of event handlers together.
*
* @template TEvent
* @param handlers
* @param extraHandlers
*/
function mergeEventHandlers(handlers, extraHandlers) {
// @ts-ignore We'll fill in all the properties below
const mergedHandlers = { ...handlers
};
for (const [key, handler] of Object.entries(extraHandlers)) {
// @ts-ignore
mergedHandlers[key] = key in mergedHandlers ? mergeEvent(mergedHandlers[key], handler) : handler;
}
return mergedHandlers;
}
//# sourceMappingURL=events.js.map