@samitouri / QOS-React-2 / commits / 217ecf581b

Re-added toggle event to non-delegated events (#19465)

Dominic Gannaway committed Jul 27, 2020 at 16:58 UTC 217ecf581bb1e62dacafb3125b9d92b3346a3fa8
2 files changed +14 -3
packages/react-dom/src/__tests__/ReactDOMEventListener-test.js
+10 -1
@@ -542,6 +542,7 @@ describe('ReactDOMEventListener', () => {
542 const onScroll = jest.fn();
543 const onCancel = jest.fn();
544 const onClose = jest.fn();
545 + const onToggle = jest.fn();
546 document.body.appendChild(container);
547 try {
548 ReactDOM.render(
@@ -549,13 +550,15 @@ describe('ReactDOMEventListener', () => {
550 onPlay={onPlay}
551 onScroll={onScroll}
552 onCancel={onCancel}
552 - onClose={onClose}>
553 + onClose={onClose}
554 + onToggle={onToggle}>
555 <div
556 ref={ref}
557 onPlay={onPlay}
558 onScroll={onScroll}
559 onCancel={onCancel}
560 onClose={onClose}
561 + onToggle={onToggle}
562 />
563 </div>,
564 container,
@@ -580,12 +583,18 @@ describe('ReactDOMEventListener', () => {
583 bubbles: false,
584 }),
585 );
586 + ref.current.dispatchEvent(
587 + new Event('toggle', {
588 + bubbles: false,
589 + }),
590 + );
591 // Regression test: ensure we still emulate bubbling with non-bubbling
592 // media
593 expect(onPlay).toHaveBeenCalledTimes(2);
594 expect(onScroll).toHaveBeenCalledTimes(2);
595 expect(onCancel).toHaveBeenCalledTimes(2);
596 expect(onClose).toHaveBeenCalledTimes(2);
597 + expect(onToggle).toHaveBeenCalledTimes(2);
598 } finally {
599 document.body.removeChild(container);
600 }
packages/react-dom/src/events/DOMPluginEventSystem.js
+4 -2
@@ -68,6 +68,7 @@ import {
68 TOP_PLAYING,
69 TOP_CLICK,
70 TOP_SELECTION_CHANGE,
71 + TOP_TOGGLE,
72 getRawEventName,
73 } from './DOMTopLevelEventTypes';
74 import {
@@ -239,11 +240,12 @@ export const mediaEventTypes = [
240 // set them on the actual target element itself. This is primarily
241 // because these events do not consistently bubble in the DOM.
242 export const nonDelegatedEvents: Set<DOMTopLevelEventType> = new Set([
242 - TOP_SCROLL,
243 - TOP_LOAD,
243 TOP_CANCEL,
244 TOP_CLOSE,
245 TOP_INVALID,
246 + TOP_LOAD,
247 + TOP_SCROLL,
248 + TOP_TOGGLE,
249 // In order to reduce bytes, we insert the above array of media events
250 // into this Set. Note: the "error" event isn't an exclusive media event,
251 // and can occur on other elements too. Rather than duplicate that event,