Skip to content

Commit 4912ba3

Browse files
authored
Add modern event system flag + rename legacy plugin module (#18073)
1 parent 4d9f850 commit 4912ba3

15 files changed

+26
-14
lines changed

packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.internal.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ let EventPluginRegistry;
1414
let React;
1515
let ReactDOM;
1616
let ReactDOMComponentTree;
17-
let DOMEventPluginSystem;
17+
let listenToEvent;
1818
let ReactDOMEventListener;
1919
let ReactTestUtils;
2020

@@ -54,8 +54,7 @@ function registerSimpleTestHandler() {
5454
}
5555

5656
// 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.
5958
describe('ReactBrowserEventEmitter', () => {
6059
beforeEach(() => {
6160
jest.resetModules();
@@ -66,7 +65,8 @@ describe('ReactBrowserEventEmitter', () => {
6665
React = require('react');
6766
ReactDOM = require('react-dom');
6867
ReactDOMComponentTree = require('../client/ReactDOMComponentTree');
69-
DOMEventPluginSystem = require('../events/DOMEventPluginSystem');
68+
listenToEvent = require('../events/DOMLegacyEventPluginSystem')
69+
.legacyListenToEvent;
7070
ReactDOMEventListener = require('../events/ReactDOMEventListener');
7171
ReactTestUtils = require('react-dom/test-utils');
7272

@@ -350,15 +350,15 @@ describe('ReactBrowserEventEmitter', () => {
350350

351351
it('should listen to events only once', () => {
352352
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);
355355
expect(EventTarget.prototype.addEventListener).toHaveBeenCalledTimes(1);
356356
});
357357

358358
it('should work with event plugins without dependencies', () => {
359359
spyOnDevAndProd(EventTarget.prototype, 'addEventListener');
360360

361-
DOMEventPluginSystem.listenToEvent(ON_CLICK_KEY, document);
361+
listenToEvent(ON_CLICK_KEY, document);
362362

363363
expect(EventTarget.prototype.addEventListener.calls.argsFor(0)[0]).toBe(
364364
'click',
@@ -368,7 +368,7 @@ describe('ReactBrowserEventEmitter', () => {
368368
it('should work with event plugins with dependencies', () => {
369369
spyOnDevAndProd(EventTarget.prototype, 'addEventListener');
370370

371-
DOMEventPluginSystem.listenToEvent(ON_CHANGE_KEY, document);
371+
listenToEvent(ON_CHANGE_KEY, document);
372372

373373
const setEventListeners = [];
374374
const listenCalls = EventTarget.prototype.addEventListener.calls.allArgs();

packages/react-dom/src/client/ReactDOMComponent.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ import {
8787
enableDeprecatedFlareAPI,
8888
enableTrustedTypesIntegration,
8989
} from 'shared/ReactFeatureFlags';
90-
import {listenToEvent} from '../events/DOMEventPluginSystem';
90+
import {legacyListenToEvent} from '../events/DOMLegacyEventPluginSystem';
9191

9292
let didWarnInvalidHydration = false;
9393
let didWarnShadyDOM = false;
@@ -272,7 +272,7 @@ function ensureListeningTo(
272272
const doc = isDocumentOrFragment
273273
? rootContainerElement
274274
: rootContainerElement.ownerDocument;
275-
listenToEvent(registrationName, doc);
275+
legacyListenToEvent(registrationName, doc);
276276
}
277277

278278
function getOwnerDocumentFromRootContainer(

packages/react-dom/src/events/DOMEventPluginSystem.js packages/react-dom/src/events/DOMLegacyEventPluginSystem.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ export function dispatchEventForPluginEventSystem(
307307
* @param {string} registrationName Name of listener (e.g. `onClick`).
308308
* @param {object} mountAt Container where to mount the listener
309309
*/
310-
export function listenToEvent(
310+
export function legacyListenToEvent(
311311
registrationName: string,
312312
mountAt: Document | Element | Node,
313313
): void {

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ import {
6060
DiscreteEvent,
6161
} from 'shared/ReactTypes';
6262
import {getEventPriorityForPluginSystem} from './DOMEventProperties';
63-
import {dispatchEventForPluginEventSystem} from './DOMEventPluginSystem';
63+
import {dispatchEventForPluginEventSystem} from './DOMLegacyEventPluginSystem';
6464

6565
const {
6666
unstable_UserBlockingPriority: UserBlockingPriority,

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ import {
117117
TOP_BLUR,
118118
} from './DOMTopLevelEventTypes';
119119
import {IS_REPLAYED} from 'legacy-events/EventSystemFlags';
120-
import {listenToTopLevelEvent} from './DOMEventPluginSystem';
120+
import {listenToTopLevelEvent} from './DOMLegacyEventPluginSystem';
121121

122122
type QueuedReplayableEvent = {|
123123
blockedOn: null | Container | SuspenseInstance,

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import getActiveElement from '../client/getActiveElement';
2626
import {getNodeFromInstance} from '../client/ReactDOMComponentTree';
2727
import {hasSelectionCapabilities} from '../client/ReactInputSelection';
2828
import {DOCUMENT_NODE} from '../shared/HTMLNodeType';
29-
import {isListeningToAllDependencies} from './DOMEventPluginSystem';
29+
import {isListeningToAllDependencies} from './DOMLegacyEventPluginSystem';
3030

3131
const skipSelectionChangeEvent =
3232
canUseDOM && 'documentMode' in document && document.documentMode <= 11;

packages/shared/ReactFeatureFlags.js

+3
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,6 @@ export const warnUnstableRenderSubtreeIntoContainer = false;
139139

140140
// Disables ReactDOM.unstable_createPortal
141141
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
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export const disableUnstableCreatePortal = false;
5555
export const deferPassiveEffectCleanupDuringUnmount = false;
5656
export const runAllPassiveEffectDestroysBeforeCreates = false;
5757
export const isTestEnvironment = false;
58+
export const enableModernEventSystem = false;
5859

5960
// Only used in www builds.
6061
export function addUserTimingListener() {

packages/shared/forks/ReactFeatureFlags.native-oss.js

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
5050
export const deferPassiveEffectCleanupDuringUnmount = false;
5151
export const runAllPassiveEffectDestroysBeforeCreates = false;
5252
export const isTestEnvironment = false;
53+
export const enableModernEventSystem = false;
5354

5455
// Only used in www builds.
5556
export function addUserTimingListener() {

packages/shared/forks/ReactFeatureFlags.persistent.js

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
5050
export const deferPassiveEffectCleanupDuringUnmount = false;
5151
export const runAllPassiveEffectDestroysBeforeCreates = false;
5252
export const isTestEnvironment = false;
53+
export const enableModernEventSystem = false;
5354

5455
// Only used in www builds.
5556
export function addUserTimingListener() {

packages/shared/forks/ReactFeatureFlags.test-renderer.js

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
5050
export const deferPassiveEffectCleanupDuringUnmount = false;
5151
export const runAllPassiveEffectDestroysBeforeCreates = false;
5252
export const isTestEnvironment = true; // this should probably *never* change
53+
export const enableModernEventSystem = false;
5354

5455
// Only used in www builds.
5556
export function addUserTimingListener() {

packages/shared/forks/ReactFeatureFlags.test-renderer.www.js

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
5050
export const deferPassiveEffectCleanupDuringUnmount = false;
5151
export const runAllPassiveEffectDestroysBeforeCreates = false;
5252
export const isTestEnvironment = true; // this should probably *never* change
53+
export const enableModernEventSystem = false;
5354

5455
// Only used in www builds.
5556
export function addUserTimingListener() {

packages/shared/forks/ReactFeatureFlags.testing.js

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
5050
export const deferPassiveEffectCleanupDuringUnmount = false;
5151
export const runAllPassiveEffectDestroysBeforeCreates = false;
5252
export const isTestEnvironment = true;
53+
export const enableModernEventSystem = false;
5354

5455
// Only used in www builds.
5556
export function addUserTimingListener() {

packages/shared/forks/ReactFeatureFlags.testing.www.js

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = __EXPERIMENTAL__;
5050
export const deferPassiveEffectCleanupDuringUnmount = false;
5151
export const runAllPassiveEffectDestroysBeforeCreates = false;
5252
export const isTestEnvironment = true;
53+
export const enableModernEventSystem = false;
5354

5455
// Only used in www builds.
5556
export function addUserTimingListener() {

packages/shared/forks/ReactFeatureFlags.www.js

+2
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ export const disableUnstableCreatePortal = __EXPERIMENTAL__;
112112

113113
export const isTestEnvironment = false;
114114

115+
export const enableModernEventSystem = false;
116+
115117
// Flow magic to verify the exports of this file match the original version.
116118
// eslint-disable-next-line no-unused-vars
117119
type Check<_X, Y: _X, X: Y = _X> = null;

0 commit comments

Comments
 (0)