@samitouri / QOS-React-2 / commits / 4912ba31e3

Add modern event system flag + rename legacy plugin module (#18073)

Dominic Gannaway committed Feb 19, 2020 at 14:36 UTC 4912ba31e3dcc8d08f5b16ae38b38d74da85ea21
15 files changed +26 -14
packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.internal.js
+8 -8
@@ -14,7 +14,7 @@ let EventPluginRegistry;
14 let React;
15 let ReactDOM;
16 let ReactDOMComponentTree;
17 -let DOMEventPluginSystem;
17 +let listenToEvent;
18 let ReactDOMEventListener;
19 let ReactTestUtils;
20
@@ -54,8 +54,7 @@ function registerSimpleTestHandler() {
54 }
55
56 // We should probably remove this file at some point, it's just full of
57 -// internal API usage. ReactBrowserEventEmitter was refactored out in
58 -// #18056 too. The majority of this code lives in DOMEventPluginSystem.
57 +// internal API usage.
58 describe('ReactBrowserEventEmitter', () => {
59 beforeEach(() => {
60 jest.resetModules();
@@ -66,7 +65,8 @@ describe('ReactBrowserEventEmitter', () => {
65 React = require('react');
66 ReactDOM = require('react-dom');
67 ReactDOMComponentTree = require('../client/ReactDOMComponentTree');
69 - DOMEventPluginSystem = require('../events/DOMEventPluginSystem');
68 + listenToEvent = require('../events/DOMLegacyEventPluginSystem')
69 + .legacyListenToEvent;
70 ReactDOMEventListener = require('../events/ReactDOMEventListener');
71 ReactTestUtils = require('react-dom/test-utils');
72
@@ -350,15 +350,15 @@ describe('ReactBrowserEventEmitter', () => {
350
351 it('should listen to events only once', () => {
352 spyOnDevAndProd(EventTarget.prototype, 'addEventListener');
353 - DOMEventPluginSystem.listenToEvent(ON_CLICK_KEY, document);
354 - DOMEventPluginSystem.listenToEvent(ON_CLICK_KEY, document);
353 + listenToEvent(ON_CLICK_KEY, document);
354 + listenToEvent(ON_CLICK_KEY, document);
355 expect(EventTarget.prototype.addEventListener).toHaveBeenCalledTimes(1);
356 });
357
358 it('should work with event plugins without dependencies', () => {
359 spyOnDevAndProd(EventTarget.prototype, 'addEventListener');
360
361 - DOMEventPluginSystem.listenToEvent(ON_CLICK_KEY, document);
361 + listenToEvent(ON_CLICK_KEY, document);
362
363 expect(EventTarget.prototype.addEventListener.calls.argsFor(0)[0]).toBe(
364 'click',
@@ -368,7 +368,7 @@ describe('ReactBrowserEventEmitter', () => {
368 it('should work with event plugins with dependencies', () => {
369 spyOnDevAndProd(EventTarget.prototype, 'addEventListener');
370
371 - DOMEventPluginSystem.listenToEvent(ON_CHANGE_KEY, document);
371 + listenToEvent(ON_CHANGE_KEY, document);
372
373 const setEventListeners = [];
374 const listenCalls = EventTarget.prototype.addEventListener.calls.allArgs();
packages/react-dom/src/client/ReactDOMComponent.js
+2 -2
@@ -87,7 +87,7 @@ import {
87 enableDeprecatedFlareAPI,
88 enableTrustedTypesIntegration,
89 } from 'shared/ReactFeatureFlags';
90 -import {listenToEvent} from '../events/DOMEventPluginSystem';
90 +import {legacyListenToEvent} from '../events/DOMLegacyEventPluginSystem';
91
92 let didWarnInvalidHydration = false;
93 let didWarnShadyDOM = false;
@@ -272,7 +272,7 @@ function ensureListeningTo(
272 const doc = isDocumentOrFragment
273 ? rootContainerElement
274 : rootContainerElement.ownerDocument;
275 - listenToEvent(registrationName, doc);
275 + legacyListenToEvent(registrationName, doc);
276 }
277
278 function getOwnerDocumentFromRootContainer(
packages/react-dom/src/events/DOMLegacyEventPluginSystem.js renamed
+1 -1
@@ -307,7 +307,7 @@ export function dispatchEventForPluginEventSystem(
307 * @param {string} registrationName Name of listener (e.g. `onClick`).
308 * @param {object} mountAt Container where to mount the listener
309 */
310 -export function listenToEvent(
310 +export function legacyListenToEvent(
311 registrationName: string,
312 mountAt: Document | Element | Node,
313 ): void {
packages/react-dom/src/events/ReactDOMEventListener.js
+1 -1
@@ -60,7 +60,7 @@ import {
60 DiscreteEvent,
61 } from 'shared/ReactTypes';
62 import {getEventPriorityForPluginSystem} from './DOMEventProperties';
63 -import {dispatchEventForPluginEventSystem} from './DOMEventPluginSystem';
63 +import {dispatchEventForPluginEventSystem} from './DOMLegacyEventPluginSystem';
64
65 const {
66 unstable_UserBlockingPriority: UserBlockingPriority,
packages/react-dom/src/events/ReactDOMEventReplaying.js
+1 -1
@@ -117,7 +117,7 @@ import {
117 TOP_BLUR,
118 } from './DOMTopLevelEventTypes';
119 import {IS_REPLAYED} from 'legacy-events/EventSystemFlags';
120 -import {listenToTopLevelEvent} from './DOMEventPluginSystem';
120 +import {listenToTopLevelEvent} from './DOMLegacyEventPluginSystem';
121
122 type QueuedReplayableEvent = {|
123 blockedOn: null | Container | SuspenseInstance,
packages/react-dom/src/events/SelectEventPlugin.js
+1 -1
@@ -26,7 +26,7 @@ import getActiveElement from '../client/getActiveElement';
26 import {getNodeFromInstance} from '../client/ReactDOMComponentTree';
27 import {hasSelectionCapabilities} from '../client/ReactInputSelection';
28 import {DOCUMENT_NODE} from '../shared/HTMLNodeType';
29 -import {isListeningToAllDependencies} from './DOMEventPluginSystem';
29 +import {isListeningToAllDependencies} from './DOMLegacyEventPluginSystem';
30
31 const skipSelectionChangeEvent =
32 canUseDOM && 'documentMode' in document && document.documentMode <= 11;
packages/shared/ReactFeatureFlags.js
+3
@@ -139,3 +139,6 @@ export const warnUnstableRenderSubtreeIntoContainer = false;
139
140 // Disables ReactDOM.unstable_createPortal
141 export const disableUnstableCreatePortal = false;
142 +
143 +// Modern event system where events get registered at roots
144 +export const enableModernEventSystem = false;
packages/shared/forks/ReactFeatureFlags.native-fb.js
+1
@@ -55,6 +55,7 @@ export const disableUnstableCreatePortal = false;
55 export const deferPassiveEffectCleanupDuringUnmount = false;
56 export const runAllPassiveEffectDestroysBeforeCreates = false;
57 export const isTestEnvironment = false;
58 +export const enableModernEventSystem = false;
59
60 // Only used in www builds.
61 export function addUserTimingListener() {
packages/shared/forks/ReactFeatureFlags.native-oss.js
+1
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
50 export const deferPassiveEffectCleanupDuringUnmount = false;
51 export const runAllPassiveEffectDestroysBeforeCreates = false;
52 export const isTestEnvironment = false;
53 +export const enableModernEventSystem = false;
54
55 // Only used in www builds.
56 export function addUserTimingListener() {
packages/shared/forks/ReactFeatureFlags.persistent.js
+1
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
50 export const deferPassiveEffectCleanupDuringUnmount = false;
51 export const runAllPassiveEffectDestroysBeforeCreates = false;
52 export const isTestEnvironment = false;
53 +export const enableModernEventSystem = false;
54
55 // Only used in www builds.
56 export function addUserTimingListener() {
packages/shared/forks/ReactFeatureFlags.test-renderer.js
+1
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
50 export const deferPassiveEffectCleanupDuringUnmount = false;
51 export const runAllPassiveEffectDestroysBeforeCreates = false;
52 export const isTestEnvironment = true; // this should probably *never* change
53 +export const enableModernEventSystem = false;
54
55 // Only used in www builds.
56 export function addUserTimingListener() {
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+1
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
50 export const deferPassiveEffectCleanupDuringUnmount = false;
51 export const runAllPassiveEffectDestroysBeforeCreates = false;
52 export const isTestEnvironment = true; // this should probably *never* change
53 +export const enableModernEventSystem = false;
54
55 // Only used in www builds.
56 export function addUserTimingListener() {
packages/shared/forks/ReactFeatureFlags.testing.js
+1
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
50 export const deferPassiveEffectCleanupDuringUnmount = false;
51 export const runAllPassiveEffectDestroysBeforeCreates = false;
52 export const isTestEnvironment = true;
53 +export const enableModernEventSystem = false;
54
55 // Only used in www builds.
56 export function addUserTimingListener() {
packages/shared/forks/ReactFeatureFlags.testing.www.js
+1
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = __EXPERIMENTAL__;
50 export const deferPassiveEffectCleanupDuringUnmount = false;
51 export const runAllPassiveEffectDestroysBeforeCreates = false;
52 export const isTestEnvironment = true;
53 +export const enableModernEventSystem = false;
54
55 // Only used in www builds.
56 export function addUserTimingListener() {
packages/shared/forks/ReactFeatureFlags.www.js
+2
@@ -112,6 +112,8 @@ export const disableUnstableCreatePortal = __EXPERIMENTAL__;
112
113 export const isTestEnvironment = false;
114
115 +export const enableModernEventSystem = false;
116 +
117 // Flow magic to verify the exports of this file match the original version.
118 // eslint-disable-next-line no-unused-vars
119 type Check<_X, Y: _X, X: Y = _X> = null;