jiti-meet/react/features/base/react/functions.js

26 lines
958 B
JavaScript

/**
* Prevents further propagation of the events to be handler by a specific event
* handler/listener in the capturing and bubbling phases.
*
* @param {Function} eventHandler - The event handler/listener which handles
* events that need to be stopped from propagating.
* @returns {Function} An event handler/listener to be used in place of the
* specified eventHandler in order to stop the events from propagating.
*/
export function stopEventPropagation(eventHandler) {
return ev => {
const r = eventHandler(ev);
// React Native does not propagate the press event so, for the sake of
// cross-platform compatibility, stop the propagation on Web as well.
// Additionally, use feature checking in order to deal with browser
// differences.
if (ev && ev.stopPropagation) {
ev.stopPropagation();
ev.preventDefault && ev.preventDefault();
}
return r;
};
}