Move eventSystemFlags to last argument in event plugin extractors (#16978)
Fix for necolas/react-native-web#1443
Nicolas Gallagher committed
Oct 2, 2019 at 10:31 UTC
ab1a4f249e61045d523ddbbfb840e868afbbf785
14 files changed
+18
-18
packages/legacy-events/EventPluginHub.js
+4
-4
@@ -132,10 +132,10 @@ export function getListener(inst: Fiber, registrationName: string) {
132
*/
133
function extractPluginEvents(
134
topLevelType: TopLevelType,
135
- eventSystemFlags: EventSystemFlags,
135
targetInst: null | Fiber,
136
nativeEvent: AnyNativeEvent,
137
nativeEventTarget: EventTarget,
138
+ eventSystemFlags: EventSystemFlags,
139
): Array<ReactSyntheticEvent> | ReactSyntheticEvent | null {
140
let events = null;
141
for (let i = 0; i < plugins.length; i++) {
@@ -144,10 +144,10 @@ function extractPluginEvents(
144
if (possiblePlugin) {
145
const extractedEvents = possiblePlugin.extractEvents(
146
topLevelType,
147
- eventSystemFlags,
147
targetInst,
148
nativeEvent,
149
nativeEventTarget,
150
+ eventSystemFlags,
151
);
152
if (extractedEvents) {
153
events = accumulateInto(events, extractedEvents);
@@ -159,17 +159,17 @@ function extractPluginEvents(
159
160
export function runExtractedPluginEventsInBatch(
161
topLevelType: TopLevelType,
162
- eventSystemFlags: EventSystemFlags,
162
targetInst: null | Fiber,
163
nativeEvent: AnyNativeEvent,
164
nativeEventTarget: EventTarget,
165
+ eventSystemFlags: EventSystemFlags,
166
) {
167
const events = extractPluginEvents(
168
topLevelType,
169
- eventSystemFlags,
169
targetInst,
170
nativeEvent,
171
nativeEventTarget,
172
+ eventSystemFlags,
173
);
174
runEventsInBatch(events);
175
}
packages/legacy-events/PluginModuleType.js
+1
-1
@@ -25,10 +25,10 @@ export type PluginModule<NativeEvent> = {
25
eventTypes: EventTypes,
26
extractEvents: (
27
topLevelType: TopLevelType,
28
- eventSystemFlags: EventSystemFlags,
28
targetInst: null | Fiber,
29
nativeTarget: NativeEvent,
30
nativeEventTarget: EventTarget,
31
+ eventSystemFlags: EventSystemFlags,
32
) => ?ReactSyntheticEvent,
33
tapMoveThreshold?: number,
34
};
packages/legacy-events/ResponderEventPlugin.js
+1
-1
@@ -504,10 +504,10 @@ const ResponderEventPlugin = {
504
*/
505
extractEvents: function(
506
topLevelType,
507
- eventSystemFlags,
507
targetInst,
508
nativeEvent,
509
nativeEventTarget,
510
+ eventSystemFlags,
511
) {
512
if (isStartish(topLevelType)) {
513
trackedTouchCount += 1;
packages/legacy-events/__tests__/ResponderEventPlugin-test.internal.js
+1
-1
@@ -314,10 +314,10 @@ const run = function(config, hierarchyConfig, nativeEventConfig) {
314
// Trigger the event
315
const extractedEvents = ResponderEventPlugin.extractEvents(
316
nativeEventConfig.topLevelType,
317
- PLUGIN_EVENT_SYSTEM,
317
nativeEventConfig.targetInst,
318
nativeEventConfig.nativeEvent,
319
nativeEventConfig.target,
320
+ PLUGIN_EVENT_SYSTEM,
321
);
322
323
// At this point the negotiation events have been dispatched as part of the
packages/react-devtools-shell/src/app/ReactNativeWeb/index.js
+2
-2
@@ -11,7 +11,7 @@ import React, {Fragment, useState} from 'react';
11
import {Button, Text, View} from 'react-native-web';
12
13
export default function ReactNativeWeb() {
14
- const [backgroundColor, setBackgroundColor] = useState('blue');
14
+ const [backgroundColor, setBackgroundColor] = useState('purple');
15
const toggleColor = () =>
16
setBackgroundColor(backgroundColor === 'purple' ? 'green' : 'purple');
17
return (
@@ -29,8 +29,8 @@ export default function ReactNativeWeb() {
29
left
30
</Text>
31
<Button
32
+ color={backgroundColor}
33
onPress={toggleColor}
33
- style={{backgroundColor}}
34
title={`Switch background color to "${
35
backgroundColor === 'purple' ? 'green' : 'purple'
36
}"`}
packages/react-dom/src/events/BeforeInputEventPlugin.js
+1
-1
@@ -464,10 +464,10 @@ const BeforeInputEventPlugin = {
464
465
extractEvents: function(
466
topLevelType,
467
- eventSystemFlags,
467
targetInst,
468
nativeEvent,
469
nativeEventTarget,
470
+ eventSystemFlags,
471
) {
472
const composition = extractCompositionEvent(
473
topLevelType,
packages/react-dom/src/events/ChangeEventPlugin.js
+1
-1
@@ -262,10 +262,10 @@ const ChangeEventPlugin = {
262
263
extractEvents: function(
264
topLevelType,
265
- eventSystemFlags,
265
targetInst,
266
nativeEvent,
267
nativeEventTarget,
268
+ eventSystemFlags,
269
) {
270
const targetNode = targetInst ? getNodeFromInstance(targetInst) : window;
271
packages/react-dom/src/events/EnterLeaveEventPlugin.js
+1
-1
@@ -54,10 +54,10 @@ const EnterLeaveEventPlugin = {
54
*/
55
extractEvents: function(
56
topLevelType,
57
- eventSystemFlags,
57
targetInst,
58
nativeEvent,
59
nativeEventTarget,
60
+ eventSystemFlags,
61
) {
62
const isOverEvent =
63
topLevelType === TOP_MOUSE_OVER || topLevelType === TOP_POINTER_OVER;
packages/react-dom/src/events/ReactDOMEventListener.js
+1
-1
@@ -178,10 +178,10 @@ function handleTopLevel(bookKeeping: BookKeepingInstance) {
178
179
runExtractedPluginEventsInBatch(
180
topLevelType,
181
- bookKeeping.eventSystemFlags,
181
targetInst,
182
nativeEvent,
183
eventTarget,
184
+ bookKeeping.eventSystemFlags,
185
);
186
}
187
}
packages/react-dom/src/events/SelectEventPlugin.js
+1
-1
@@ -162,10 +162,10 @@ const SelectEventPlugin = {
162
163
extractEvents: function(
164
topLevelType,
165
- eventSystemFlags,
165
targetInst,
166
nativeEvent,
167
nativeEventTarget,
168
+ eventSystemFlags,
169
) {
170
const doc = getEventTargetDocument(nativeEventTarget);
171
// Track whether all listeners exists for this plugin. If none exist, we do
packages/react-dom/src/events/SimpleEventPlugin.js
+1
-1
@@ -248,10 +248,10 @@ const SimpleEventPlugin: PluginModule<MouseEvent> & {
248
249
extractEvents: function(
250
topLevelType: TopLevelType,
251
- eventSystemFlags: EventSystemFlags,
251
targetInst: null | Fiber,
252
nativeEvent: MouseEvent,
253
nativeEventTarget: EventTarget,
254
+ eventSystemFlags: EventSystemFlags,
255
): null | ReactSyntheticEvent {
256
const dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];
257
if (!dispatchConfig) {
packages/react-native-renderer/src/ReactFabricEventEmitter.js
+1
-1
@@ -42,10 +42,10 @@ export function dispatchEvent(
42
// Heritage plugin event system
43
runExtractedPluginEventsInBatch(
44
topLevelType,
45
- PLUGIN_EVENT_SYSTEM,
45
targetFiber,
46
nativeEvent,
47
nativeEvent.target,
48
+ PLUGIN_EVENT_SYSTEM,
49
);
50
});
51
// React Native doesn't use ReactControlledComponent but if it did, here's
packages/react-native-renderer/src/ReactNativeBridgeEventPlugin.js
+1
-1
@@ -33,10 +33,10 @@ const ReactNativeBridgeEventPlugin = {
33
*/
34
extractEvents: function(
35
topLevelType: TopLevelType,
36
- eventSystemFlags: EventSystemFlags,
36
targetInst: null | Object,
37
nativeEvent: AnyNativeEvent,
38
nativeEventTarget: Object,
39
+ eventSystemFlags: EventSystemFlags,
40
): ?Object {
41
if (targetInst == null) {
42
// Probably a node belonging to another renderer's tree.
packages/react-native-renderer/src/ReactNativeEventEmitter.js
+1
-1
@@ -101,10 +101,10 @@ function _receiveRootNodeIDEvent(
101
batchedUpdates(function() {
102
runExtractedPluginEventsInBatch(
103
topLevelType,
104
- PLUGIN_EVENT_SYSTEM,
104
inst,
105
nativeEvent,
106
nativeEvent.target,
107
+ PLUGIN_EVENT_SYSTEM,
108
);
109
});
110
// React Native doesn't use ReactControlledComponent but if it did, here's