Skip to content

Commit 217ecf5

Browse files
authored
Re-added toggle event to non-delegated events (facebook#19465)
1 parent 6bb86fd commit 217ecf5

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

packages/react-dom/src/__tests__/ReactDOMEventListener-test.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,20 +542,23 @@ describe('ReactDOMEventListener', () => {
542542
const onScroll = jest.fn();
543543
const onCancel = jest.fn();
544544
const onClose = jest.fn();
545+
const onToggle = jest.fn();
545546
document.body.appendChild(container);
546547
try {
547548
ReactDOM.render(
548549
<div
549550
onPlay={onPlay}
550551
onScroll={onScroll}
551552
onCancel={onCancel}
552-
onClose={onClose}>
553+
onClose={onClose}
554+
onToggle={onToggle}>
553555
<div
554556
ref={ref}
555557
onPlay={onPlay}
556558
onScroll={onScroll}
557559
onCancel={onCancel}
558560
onClose={onClose}
561+
onToggle={onToggle}
559562
/>
560563
</div>,
561564
container,
@@ -580,12 +583,18 @@ describe('ReactDOMEventListener', () => {
580583
bubbles: false,
581584
}),
582585
);
586+
ref.current.dispatchEvent(
587+
new Event('toggle', {
588+
bubbles: false,
589+
}),
590+
);
583591
// Regression test: ensure we still emulate bubbling with non-bubbling
584592
// media
585593
expect(onPlay).toHaveBeenCalledTimes(2);
586594
expect(onScroll).toHaveBeenCalledTimes(2);
587595
expect(onCancel).toHaveBeenCalledTimes(2);
588596
expect(onClose).toHaveBeenCalledTimes(2);
597+
expect(onToggle).toHaveBeenCalledTimes(2);
589598
} finally {
590599
document.body.removeChild(container);
591600
}

packages/react-dom/src/events/DOMPluginEventSystem.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ import {
6868
TOP_PLAYING,
6969
TOP_CLICK,
7070
TOP_SELECTION_CHANGE,
71+
TOP_TOGGLE,
7172
getRawEventName,
7273
} from './DOMTopLevelEventTypes';
7374
import {
@@ -239,11 +240,12 @@ export const mediaEventTypes = [
239240
// set them on the actual target element itself. This is primarily
240241
// because these events do not consistently bubble in the DOM.
241242
export const nonDelegatedEvents: Set<DOMTopLevelEventType> = new Set([
242-
TOP_SCROLL,
243-
TOP_LOAD,
244243
TOP_CANCEL,
245244
TOP_CLOSE,
246245
TOP_INVALID,
246+
TOP_LOAD,
247+
TOP_SCROLL,
248+
TOP_TOGGLE,
247249
// In order to reduce bytes, we insert the above array of media events
248250
// into this Set. Note: the "error" event isn't an exclusive media event,
249251
// and can occur on other elements too. Rather than duplicate that event,

0 commit comments

Comments
 (0)