| 12345678910111213141516171819202122232425 |
- /**
- * 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;
- };
- }
|