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

Lines changed: 26 additions & 14 deletions

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ let EventPluginRegistry;
1414
letReact;
1515
letReactDOM;
1616
letReactDOMComponentTree;
17-
letDOMEventPluginSystem;
17+
letlistenToEvent;
1818
letReactDOMEventListener;
1919
letReactTestUtils;
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
constsetEventListeners=[];
374374
constlistenCalls=EventTarget.prototype.addEventListener.calls.allArgs();

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

Lines changed: 2 additions & 2 deletions
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
letdidWarnInvalidHydration=false;
9393
letdidWarnShadyDOM=false;
@@ -272,7 +272,7 @@ function ensureListeningTo(
272272
constdoc=isDocumentOrFragment
273273
? rootContainerElement
274274
: rootContainerElement.ownerDocument;
275-
listenToEvent(registrationName,doc);
275+
legacyListenToEvent(registrationName,doc);
276276
}
277277

278278
functiongetOwnerDocumentFromRootContainer(

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

Lines changed: 1 addition & 1 deletion
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-
exportfunctionlistenToEvent(
310+
exportfunctionlegacyListenToEvent(
311311
registrationName: string,
312312
mountAt: Document|Element|Node,
313313
): void{

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

Lines changed: 1 addition & 1 deletion
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‎

Lines changed: 1 addition & 1 deletion
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
typeQueuedReplayableEvent={|
123123
blockedOn: null|Container|SuspenseInstance,

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

Lines changed: 1 addition & 1 deletion
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
constskipSelectionChangeEvent=
3232
canUseDOM&&'documentMode'indocument&&document.documentMode<=11;

‎packages/shared/ReactFeatureFlags.js‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,6 @@ export const warnUnstableRenderSubtreeIntoContainer = false;
139139

140140
// Disables ReactDOM.unstable_createPortal
141141
exportconstdisableUnstableCreatePortal=false;
142+
143+
// Modern event system where events get registered at roots
144+
exportconstenableModernEventSystem=false;

‎packages/shared/forks/ReactFeatureFlags.native-fb.js‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export const disableUnstableCreatePortal = false;
5555
exportconstdeferPassiveEffectCleanupDuringUnmount=false;
5656
exportconstrunAllPassiveEffectDestroysBeforeCreates=false;
5757
exportconstisTestEnvironment=false;
58+
exportconstenableModernEventSystem=false;
5859

5960
// Only used in www builds.
6061
exportfunctionaddUserTimingListener(){

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
5050
exportconstdeferPassiveEffectCleanupDuringUnmount=false;
5151
exportconstrunAllPassiveEffectDestroysBeforeCreates=false;
5252
exportconstisTestEnvironment=false;
53+
exportconstenableModernEventSystem=false;
5354

5455
// Only used in www builds.
5556
exportfunctionaddUserTimingListener(){

‎packages/shared/forks/ReactFeatureFlags.persistent.js‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const disableUnstableCreatePortal = false;
5050
exportconstdeferPassiveEffectCleanupDuringUnmount=false;
5151
exportconstrunAllPassiveEffectDestroysBeforeCreates=false;
5252
exportconstisTestEnvironment=false;
53+
exportconstenableModernEventSystem=false;
5354

5455
// Only used in www builds.
5556
exportfunctionaddUserTimingListener(){

0 commit comments

Comments
 (0)