[Flare] Move unstable_createEventComponent to ReactDOM (#15890)
Dominic Gannaway committed
Jun 18, 2019 at 23:41 UTC
689beef6f5d0adab166f5eb0aac59eba6100677a
20 files changed
+318
-290
packages/react-dom/src/client/ReactDOM.js
+9
-1
@@ -42,6 +42,7 @@ import {
42
} from 'react-reconciler/inline.dom';
43
import {createPortal as createPortalImpl} from 'shared/ReactPortal';
44
import {canUseDOM} from 'shared/ExecutionEnvironment';
45
+import createEventComponent from 'shared/createEventComponent';
46
import {setBatchingImplementation} from 'events/ReactGenericBatching';
47
import {
48
setRestoreImplementation,
@@ -63,7 +64,10 @@ import getComponentName from 'shared/getComponentName';
64
import invariant from 'shared/invariant';
65
import lowPriorityWarning from 'shared/lowPriorityWarning';
66
import warningWithoutStack from 'shared/warningWithoutStack';
66
-import {enableStableConcurrentModeAPIs} from 'shared/ReactFeatureFlags';
67
+import {
68
+ enableStableConcurrentModeAPIs,
69
+ enableEventAPI,
70
+} from 'shared/ReactFeatureFlags';
71
72
import {
73
getInstanceFromNode,
@@ -877,6 +881,10 @@ if (enableStableConcurrentModeAPIs) {
881
ReactDOM.createSyncRoot = createSyncRoot;
882
}
883
884
+if (enableEventAPI) {
885
+ ReactDOM.unstable_createEventComponent = createEventComponent;
886
+}
887
+
888
const foundDevTools = injectIntoDevTools({
889
findFiberByHostInstance: getClosestInstanceFromNode,
890
bundleType: __DEV__ ? 1 : 0,
packages/react-dom/src/client/ReactDOMComponent.js
+2
-2
@@ -13,7 +13,7 @@ import {registrationNameModules} from 'events/EventPluginRegistry';
13
import warning from 'shared/warning';
14
import {canUseDOM} from 'shared/ExecutionEnvironment';
15
import warningWithoutStack from 'shared/warningWithoutStack';
16
-import type {ReactEventResponderEventType} from 'shared/ReactTypes';
16
+import type {ReactDOMEventResponderEventType} from 'shared/ReactDOMTypes';
17
import type {DOMTopLevelEventType} from 'events/TopLevelEventTypes';
18
import {
19
setListenToResponderEventTypes,
@@ -1287,7 +1287,7 @@ export function restoreControlledState(
1287
}
1288
1289
export function listenToEventResponderEventTypes(
1290
- eventTypes: Array<ReactEventResponderEventType>,
1290
+ eventTypes: Array<ReactDOMEventResponderEventType>,
1291
element: Element | Document,
1292
): void {
1293
if (enableEventAPI) {
packages/react-dom/src/client/ReactDOMHostConfig.js
+6
-1
@@ -46,6 +46,7 @@ import dangerousStyleValue from '../shared/dangerousStyleValue';
46
47
import type {DOMContainer} from './ReactDOM';
48
import type {ReactEventComponentInstance} from 'shared/ReactTypes';
49
+import type {ReactDOMEventResponder} from 'shared/ReactDOMTypes';
50
import {
51
mountEventResponder,
52
unmountEventResponder,
@@ -101,6 +102,7 @@ export type UpdatePayload = Array<mixed>;
102
export type ChildSet = void; // Unused
103
export type TimeoutHandle = TimeoutID;
104
export type NoTimeout = -1;
105
+export type EventResponder = ReactDOMEventResponder;
106
107
import {
108
enableSuspenseServerRenderer,
@@ -905,7 +907,10 @@ export function mountEventComponent(
907
const doc = rootContainerInstance.ownerDocument;
908
const documentBody = doc.body || doc;
909
const responder = eventComponentInstance.responder;
908
- const {rootEventTypes, targetEventTypes} = responder;
910
+ const {
911
+ rootEventTypes,
912
+ targetEventTypes,
913
+ } = ((responder: any): ReactDOMEventResponder);
914
if (targetEventTypes !== undefined) {
915
listenToEventResponderEventTypes(targetEventTypes, documentBody);
916
}
packages/react-dom/src/events/DOMEventResponderSystem.js
+30
-28
@@ -18,13 +18,15 @@ import {
18
HostComponent,
19
} from 'shared/ReactWorkTags';
20
import type {
21
- ReactEventResponder,
22
- ReactEventResponderEventType,
21
ReactEventComponentInstance,
24
- ReactResponderContext,
25
- ReactResponderEvent,
22
EventPriority,
23
} from 'shared/ReactTypes';
24
+import type {
25
+ ReactDOMEventResponder,
26
+ ReactDOMEventResponderEventType,
27
+ ReactDOMResponderContext,
28
+ ReactDOMResponderEvent,
29
+} from 'shared/ReactDOMTypes';
30
import type {DOMTopLevelEventType} from 'events/TopLevelEventTypes';
31
import {
32
batchedEventUpdates,
@@ -95,7 +97,7 @@ const rootEventTypesToEventComponentInstances: Map<
97
Set<ReactEventComponentInstance>,
98
> = new Map();
99
const targetEventTypeCached: Map<
98
- Array<ReactEventResponderEventType>,
100
+ Array<ReactDOMEventResponderEventType>,
101
Set<string>,
102
> = new Map();
103
const ownershipChangeListeners: Set<ReactEventComponentInstance> = new Set();
@@ -116,7 +118,7 @@ let currentInstance: null | ReactEventComponentInstance = null;
118
let currentEventQueue: null | EventQueue = null;
119
let currentTimerIDCounter = 0;
120
119
-const eventResponderContext: ReactResponderContext = {
121
+const eventResponderContext: ReactDOMResponderContext = {
122
dispatchEvent(
123
possibleEventObject: Object,
124
listener: ($Shape<PartialEventObject>) => void,
@@ -186,7 +188,7 @@ const eventResponderContext: ReactResponderContext = {
188
eventListeners.set(eventObject, listener);
189
eventQueue.events.push(eventObject);
190
},
189
- isEventWithinTouchHitTarget(event: ReactResponderEvent): boolean {
191
+ isEventWithinTouchHitTarget(event: ReactDOMResponderEvent): boolean {
192
validateResponderContext();
193
const target = event.target;
194
const nativeEvent = event.nativeEvent;
@@ -254,7 +256,9 @@ const eventResponderContext: ReactResponderContext = {
256
}
257
return false;
258
},
257
- addRootEventTypes(rootEventTypes: Array<ReactEventResponderEventType>): void {
259
+ addRootEventTypes(
260
+ rootEventTypes: Array<ReactDOMEventResponderEventType>,
261
+ ): void {
262
validateResponderContext();
263
const activeDocument = getActiveDocument();
264
listenToResponderEventTypesImpl(rootEventTypes, activeDocument);
@@ -265,7 +269,7 @@ const eventResponderContext: ReactResponderContext = {
269
}
270
},
271
removeRootEventTypes(
268
- rootEventTypes: Array<ReactEventResponderEventType>,
272
+ rootEventTypes: Array<ReactDOMEventResponderEventType>,
273
): void {
274
validateResponderContext();
275
for (let i = 0; i < rootEventTypes.length; i++) {
@@ -375,7 +379,7 @@ const eventResponderContext: ReactResponderContext = {
379
},
380
getActiveDocument,
381
objectAssign: Object.assign,
378
- getEventCurrentTarget(event: ReactResponderEvent): Element {
382
+ getEventCurrentTarget(event: ReactDOMResponderEvent): Element {
383
validateResponderContext();
384
const target = event.target;
385
let fiber = getClosestInstanceFromNode(target);
@@ -531,13 +535,13 @@ function processTimers(
535
}
536
}
537
534
-function createResponderEvent(
538
+function createDOMResponderEvent(
539
topLevelType: string,
540
nativeEvent: AnyNativeEvent,
541
nativeEventTarget: Element | Document,
542
passive: boolean,
543
passiveSupported: boolean,
540
-): ReactResponderEvent {
544
+): ReactDOMResponderEvent {
545
const {pointerType} = (nativeEvent: any);
546
let eventPointerType = '';
547
let pointerId = null;
@@ -589,7 +593,7 @@ function processEvents(events: Array<EventObjectType>): void {
593
}
594
}
595
592
-export function processEventQueue(): void {
596
+function processEventQueue(): void {
597
const {events, eventPriority} = ((currentEventQueue: any): EventQueue);
598
599
if (events.length === 0) {
@@ -622,8 +626,8 @@ export function processEventQueue(): void {
626
}
627
}
628
625
-function getTargetEventTypesSet(
626
- eventTypes: Array<ReactEventResponderEventType>,
629
+function getDOMTargetEventTypesSet(
630
+ eventTypes: Array<ReactDOMEventResponderEventType>,
631
): Set<string> {
632
let cachedSet = targetEventTypeCached.get(eventTypes);
633
@@ -669,7 +673,7 @@ function getTargetEventResponderInstances(
673
const targetEventTypes = responder.targetEventTypes;
674
// Validate the target event type exists on the responder
675
if (targetEventTypes !== undefined) {
672
- const targetEventTypesSet = getTargetEventTypesSet(targetEventTypes);
676
+ const targetEventTypesSet = getDOMTargetEventTypesSet(targetEventTypes);
677
if (targetEventTypesSet.has(listeningName)) {
678
eventResponderInstances.push(eventComponentInstance);
679
}
@@ -700,8 +704,8 @@ function getRootEventResponderInstances(
704
705
function shouldSkipEventComponent(
706
eventResponderInstance: ReactEventComponentInstance,
703
- responder: ReactEventResponder,
704
- propagatedEventResponders: null | Set<ReactEventResponder>,
707
+ responder: ReactDOMEventResponder,
708
+ propagatedEventResponders: null | Set<ReactDOMEventResponder>,
709
): boolean {
710
if (propagatedEventResponders !== null) {
711
if (propagatedEventResponders.has(responder)) {
@@ -716,9 +720,9 @@ function shouldSkipEventComponent(
720
}
721
722
function checkForLocalPropagationContinuation(
719
- responder: ReactEventResponder,
720
- propagatedEventResponders: Set<ReactEventResponder>,
721
-) {
723
+ responder: ReactDOMEventResponder,
724
+ propagatedEventResponders: Set<ReactDOMEventResponder>,
725
+): void {
726
if (continueLocalPropagation === true) {
727
propagatedEventResponders.delete(responder);
728
continueLocalPropagation = false;
@@ -748,14 +752,14 @@ function traverseAndHandleEventResponderInstances(
752
listeningName,
753
targetFiber,
754
);
751
- const responderEvent = createResponderEvent(
755
+ const responderEvent = createDOMResponderEvent(
756
((topLevelType: any): string),
757
nativeEvent,
758
((nativeEventTarget: any): Element | Document),
759
isPassiveEvent,
760
isPassiveSupported,
761
);
758
- const propagatedEventResponders: Set<ReactEventResponder> = new Set();
762
+ const propagatedEventResponders: Set<ReactDOMEventResponder> = new Set();
763
let length = targetEventResponderInstances.length;
764
let i;
765
@@ -964,7 +968,7 @@ export function dispatchEventForResponderEventSystem(
968
969
export function addRootEventTypesForComponentInstance(
970
eventComponentInstance: ReactEventComponentInstance,
967
- rootEventTypes: Array<ReactEventResponderEventType>,
971
+ rootEventTypes: Array<ReactDOMEventResponderEventType>,
972
): void {
973
for (let i = 0; i < rootEventTypes.length; i++) {
974
const rootEventType = rootEventTypes[i];
@@ -973,7 +977,7 @@ export function addRootEventTypesForComponentInstance(
977
}
978
979
function registerRootEventType(
976
- rootEventType: ReactEventResponderEventType,
980
+ rootEventType: ReactDOMEventResponderEventType,
981
eventComponentInstance: ReactEventComponentInstance,
982
): void {
983
let name = rootEventType;
@@ -1013,9 +1017,7 @@ function registerRootEventType(
1017
name,
1018
);
1019
rootEventTypesSet.add(listeningName);
1016
- rootEventComponentInstances.add(
1017
- ((eventComponentInstance: any): ReactEventComponentInstance),
1018
- );
1020
+ rootEventComponentInstances.add(eventComponentInstance);
1021
}
1022
1023
export function generateListeningKey(
packages/react-events/src/Drag.js
+12
-12
@@ -8,12 +8,12 @@
8
*/
9
10
import type {
11
- ReactResponderEvent,
12
- ReactResponderContext,
13
- EventPriority,
14
-} from 'shared/ReactTypes';
11
+ ReactDOMResponderEvent,
12
+ ReactDOMResponderContext,
13
+} from 'shared/ReactDOMTypes';
14
+import type {EventPriority} from 'shared/ReactTypes';
15
16
-import React from 'react';
16
+import ReactDOM from 'react-dom';
17
import {DiscreteEvent, UserBlockingEvent} from 'shared/ReactTypes';
18
19
const targetEventTypes = ['pointerdown'];
@@ -58,7 +58,7 @@ type DragEvent = {|
58
|};
59
60
function createDragEvent(
61
- context: ReactResponderContext,
61
+ context: ReactDOMResponderContext,
62
type: DragEventType,
63
target: Element | Document,
64
eventData?: EventData,
@@ -72,7 +72,7 @@ function createDragEvent(
72
}
73
74
function dispatchDragEvent(
75
- context: ReactResponderContext,
75
+ context: ReactDOMResponderContext,
76
name: DragEventType,
77
listener: DragEvent => void,
78
state: DragState,
@@ -99,8 +99,8 @@ const DragResponder = {
99
},
100
allowMultipleHostChildren: false,
101
onEvent(
102
- event: ReactResponderEvent,
103
- context: ReactResponderContext,
102
+ event: ReactDOMResponderEvent,
103
+ context: ReactDOMResponderContext,
104
props: Object,
105
state: DragState,
106
): void {
@@ -142,8 +142,8 @@ const DragResponder = {
142
}
143
},
144
onRootEvent(
145
- event: ReactResponderEvent,
146
- context: ReactResponderContext,
145
+ event: ReactDOMResponderEvent,
146
+ context: ReactDOMResponderContext,
147
props: Object,
148
state: DragState,
149
): void {
@@ -259,4 +259,4 @@ const DragResponder = {
259
},
260
};
261
262
-export default React.unstable_createEventComponent(DragResponder, 'Drag');
262
+export default ReactDOM.unstable_createEventComponent(DragResponder, 'Drag');
packages/react-events/src/Focus.js
+18
-18
@@ -8,12 +8,12 @@
8
*/
9
10
import type {
11
+ ReactDOMResponderEvent,
12
+ ReactDOMResponderContext,
13
PointerType,
12
- ReactResponderEvent,
13
- ReactResponderContext,
14
-} from 'shared/ReactTypes';
14
+} from 'shared/ReactDOMTypes';
15
16
-import React from 'react';
16
+import ReactDOM from 'react-dom';
17
import {DiscreteEvent} from 'shared/ReactTypes';
18
19
type FocusProps = {
@@ -71,7 +71,7 @@ if (typeof window !== 'undefined' && window.PointerEvent === undefined) {
71
}
72
73
function createFocusEvent(
74
- context: ReactResponderContext,
74
+ context: ReactDOMResponderContext,
75
type: FocusEventType,
76
target: Element | Document,
77
pointerType: PointerType,
@@ -85,7 +85,7 @@ function createFocusEvent(
85
}
86
87
function dispatchFocusInEvents(
88
- context: ReactResponderContext,
88
+ context: ReactDOMResponderContext,
89
props: FocusProps,
90
state: FocusState,
91
) {
@@ -127,7 +127,7 @@ function dispatchFocusInEvents(
127
}
128
129
function dispatchFocusOutEvents(
130
- context: ReactResponderContext,
130
+ context: ReactDOMResponderContext,
131
props: FocusProps,
132
state: FocusState,
133
) {
@@ -158,7 +158,7 @@ function dispatchFocusOutEvents(
158
}
159
160
function dispatchFocusVisibleOutEvent(
161
- context: ReactResponderContext,
161
+ context: ReactDOMResponderContext,
162
props: FocusProps,
163
state: FocusState,
164
) {
@@ -180,7 +180,7 @@ function dispatchFocusVisibleOutEvent(
180
}
181
182
function unmountResponder(
183
- context: ReactResponderContext,
183
+ context: ReactDOMResponderContext,
184
props: FocusProps,
185
state: FocusState,
186
): void {
@@ -190,8 +190,8 @@ function unmountResponder(
190
}
191
192
function handleRootPointerEvent(
193
- event: ReactResponderEvent,
194
- context: ReactResponderContext,
193
+ event: ReactDOMResponderEvent,
194
+ context: ReactDOMResponderContext,
195
props: FocusProps,
196
state: FocusState,
197
): void {
@@ -229,8 +229,8 @@ const FocusResponder = {
229
},
230
allowMultipleHostChildren: false,
231
onEvent(
232
- event: ReactResponderEvent,
233
- context: ReactResponderContext,
232
+ event: ReactDOMResponderEvent,
233
+ context: ReactDOMResponderContext,
234
props: FocusProps,
235
state: FocusState,
236
): void {
@@ -270,8 +270,8 @@ const FocusResponder = {
270
}
271
},
272
onRootEvent(
273
- event: ReactResponderEvent,
274
- context: ReactResponderContext,
273
+ event: ReactDOMResponderEvent,
274
+ context: ReactDOMResponderContext,
275
props: FocusProps,
276
state: FocusState,
277
): void {
@@ -321,14 +321,14 @@ const FocusResponder = {
321
}
322
},
323
onUnmount(
324
- context: ReactResponderContext,
324
+ context: ReactDOMResponderContext,
325
props: FocusProps,
326
state: FocusState,
327
) {
328
unmountResponder(context, props, state);
329
},
330
onOwnershipChange(
331
- context: ReactResponderContext,
331
+ context: ReactDOMResponderContext,
332
props: FocusProps,
333
state: FocusState,
334
) {
@@ -336,4 +336,4 @@ const FocusResponder = {
336
},
337
};
338
339
-export default React.unstable_createEventComponent(FocusResponder, 'Focus');
339
+export default ReactDOM.unstable_createEventComponent(FocusResponder, 'Focus');
packages/react-events/src/FocusScope.js
+13
-12
@@ -7,10 +7,11 @@
7
* @flow
8
*/
9
import type {
10
- ReactResponderEvent,
11
- ReactResponderContext,
12
-} from 'shared/ReactTypes';
13
-import React from 'react';
10
+ ReactDOMResponderEvent,
11
+ ReactDOMResponderContext,
12
+} from 'shared/ReactDOMTypes';
13
+
14
+import ReactDOM from 'react-dom';
15
16
type FocusScopeProps = {
17
autoFocus: Boolean,
@@ -35,7 +36,7 @@ function focusElement(element: ?HTMLElement) {
36
}
37
38
function getFirstFocusableElement(
38
- context: ReactResponderContext,
39
+ context: ReactDOMResponderContext,
40
state: FocusScopeState,
41
): ?HTMLElement {
42
const elements = context.getFocusableElementsInScope();
@@ -55,8 +56,8 @@ const FocusScopeResponder = {
56
},
57
allowMultipleHostChildren: true,
58
onEvent(
58
- event: ReactResponderEvent,
59
- context: ReactResponderContext,
59
+ event: ReactDOMResponderEvent,
60
+ context: ReactDOMResponderContext,
61
props: FocusScopeProps,
62
state: FocusScopeState,
63
) {
@@ -112,8 +113,8 @@ const FocusScopeResponder = {
113
}
114
},
115
onRootEvent(
115
- event: ReactResponderEvent,
116
- context: ReactResponderContext,
116
+ event: ReactDOMResponderEvent,
117
+ context: ReactDOMResponderContext,
118
props: FocusScopeProps,
119
state: FocusScopeState,
120
) {
@@ -133,7 +134,7 @@ const FocusScopeResponder = {
134
}
135
},
136
onMount(
136
- context: ReactResponderContext,
137
+ context: ReactDOMResponderContext,
138
props: FocusScopeProps,
139
state: FocusScopeState,
140
): void {
@@ -146,7 +147,7 @@ const FocusScopeResponder = {
147
}
148
},
149
onUnmount(
149
- context: ReactResponderContext,
150
+ context: ReactDOMResponderContext,
151
props: FocusScopeProps,
152
state: FocusScopeState,
153
): void {
@@ -156,7 +157,7 @@ const FocusScopeResponder = {
157
},
158
};
159
159
-export default React.unstable_createEventComponent(
160
+export default ReactDOM.unstable_createEventComponent(
161
FocusScopeResponder,
162
'FocusScope',
163
);
packages/react-events/src/Hover.js
+18
-18
@@ -8,11 +8,11 @@
8
*/
9
10
import type {
11
- ReactResponderEvent,
12
- ReactResponderContext,
13
-} from 'shared/ReactTypes';
11
+ ReactDOMResponderEvent,
12
+ ReactDOMResponderContext,
13
+} from 'shared/ReactDOMTypes';
14
15
-import React from 'react';
15
+import ReactDOM from 'react-dom';
16
import {UserBlockingEvent} from 'shared/ReactTypes';
17
18
type HoverProps = {
@@ -69,8 +69,8 @@ if (typeof window !== 'undefined' && window.PointerEvent === undefined) {
69
}
70
71
function createHoverEvent(
72
- event: ?ReactResponderEvent,
73
- context: ReactResponderContext,
72
+ event: ?ReactDOMResponderEvent,
73
+ context: ReactDOMResponderContext,
74
type: HoverEventType,
75
target: Element | Document,
76
): HoverEvent {
@@ -102,8 +102,8 @@ function createHoverEvent(
102
}
103
104
function dispatchHoverChangeEvent(
105
- event: null | ReactResponderEvent,
106
- context: ReactResponderContext,
105
+ event: null | ReactDOMResponderEvent,
106
+ context: ReactDOMResponderContext,
107
props: HoverProps,
108
state: HoverState,
109
): void {
@@ -121,8 +121,8 @@ function dispatchHoverChangeEvent(
121
}
122
123
function dispatchHoverStartEvents(
124
- event: ReactResponderEvent,
125
- context: ReactResponderContext,
124
+ event: ReactDOMResponderEvent,
125
+ context: ReactDOMResponderContext,
126
props: HoverProps,
127
state: HoverState,
128
): void {
@@ -184,8 +184,8 @@ function dispatchHoverStartEvents(
184
}
185
186
function dispatchHoverEndEvents(
187
- event: null | ReactResponderEvent,
188
- context: ReactResponderContext,
187
+ event: null | ReactDOMResponderEvent,
188
+ context: ReactDOMResponderContext,
189
props: HoverProps,
190
state: HoverState,
191
) {
@@ -256,7 +256,7 @@ function calculateDelayMS(delay: ?number, min = 0, fallback = 0) {
256
}
257
258
function unmountResponder(
259
- context: ReactResponderContext,
259
+ context: ReactDOMResponderContext,
260
props: HoverProps,
261
state: HoverState,
262
): void {
@@ -288,8 +288,8 @@ const HoverResponder = {
288
},
289
allowMultipleHostChildren: false,
290
onEvent(
291
- event: ReactResponderEvent,
292
- context: ReactResponderContext,
291
+ event: ReactDOMResponderEvent,
292
+ context: ReactDOMResponderContext,
293
props: HoverProps,
294
state: HoverState,
295
): void {
@@ -391,14 +391,14 @@ const HoverResponder = {
391
}
392
},
393
onUnmount(
394
- context: ReactResponderContext,
394
+ context: ReactDOMResponderContext,
395
props: HoverProps,
396
state: HoverState,
397
) {
398
unmountResponder(context, props, state);
399
},
400
onOwnershipChange(
401
- context: ReactResponderContext,
401
+ context: ReactDOMResponderContext,
402
props: HoverProps,
403
state: HoverState,
404
) {
@@ -406,4 +406,4 @@ const HoverResponder = {
406
},
407
};
408
409
-export default React.unstable_createEventComponent(HoverResponder, 'Hover');
409
+export default ReactDOM.unstable_createEventComponent(HoverResponder, 'Hover');
packages/react-events/src/Press.js
+33
-33
@@ -8,13 +8,13 @@
8
*/
9
10
import type {
11
+ ReactDOMResponderEvent,
12
+ ReactDOMResponderContext,
13
PointerType,
12
- ReactResponderEvent,
13
- ReactResponderContext,
14
-} from 'shared/ReactTypes';
14
+} from 'shared/ReactDOMTypes';
15
import type {EventPriority} from 'shared/ReactTypes';
16
17
-import React from 'react';
17
+import ReactDOM from 'react-dom';
18
import {DiscreteEvent, UserBlockingEvent} from 'shared/ReactTypes';
19
20
type PressProps = {
@@ -150,11 +150,11 @@ if (typeof window !== 'undefined' && window.PointerEvent === undefined) {
150
}
151
152
function createPressEvent(
153
- context: ReactResponderContext,
153
+ context: ReactDOMResponderContext,
154
type: PressEventType,
155
target: Element | Document,
156
pointerType: PointerType,
157
- event: ?ReactResponderEvent,
157
+ event: ?ReactDOMResponderEvent,
158
): PressEvent {
159
const timeStamp = context.getTimeStamp();
160
let clientX = null;
@@ -204,8 +204,8 @@ function createPressEvent(
204
}
205
206
function dispatchEvent(
207
- event: ?ReactResponderEvent,
208
- context: ReactResponderContext,
207
+ event: ?ReactDOMResponderEvent,
208
+ context: ReactDOMResponderContext,
209
state: PressState,
210
name: PressEventType,
211
listener: (e: Object) => void,
@@ -224,8 +224,8 @@ function dispatchEvent(
224
}
225
226
function dispatchPressChangeEvent(
227
- event: ?ReactResponderEvent,
228
- context: ReactResponderContext,
227
+ event: ?ReactDOMResponderEvent,
228
+ context: ReactDOMResponderContext,
229
props: PressProps,
230
state: PressState,
231
): void {
@@ -237,8 +237,8 @@ function dispatchPressChangeEvent(
237
}
238
239
function dispatchLongPressChangeEvent(
240
- event: ?ReactResponderEvent,
241
- context: ReactResponderContext,
240
+ event: ?ReactDOMResponderEvent,
241
+ context: ReactDOMResponderContext,
242
props: PressProps,
243
state: PressState,
244
): void {
@@ -256,7 +256,7 @@ function dispatchLongPressChangeEvent(
256
);
257
}
258
259
-function activate(event: ReactResponderEvent, context, props, state) {
259
+function activate(event: ReactDOMResponderEvent, context, props, state) {
260
const nativeEvent: any = event.nativeEvent;
261
const {x, y} = getEventViewportCoords(nativeEvent);
262
const wasActivePressed = state.isActivePressed;
@@ -280,7 +280,7 @@ function activate(event: ReactResponderEvent, context, props, state) {
280
}
281
}
282
283
-function deactivate(event: ?ReactResponderEvent, context, props, state) {
283
+function deactivate(event: ?ReactDOMResponderEvent, context, props, state) {
284
const wasLongPressed = state.isLongPressed;
285
state.isActivePressed = false;
286
state.isLongPressed = false;
@@ -304,8 +304,8 @@ function deactivate(event: ?ReactResponderEvent, context, props, state) {
304
}
305
306
function dispatchPressStartEvents(
307
- event: ReactResponderEvent,
308
- context: ReactResponderContext,
307
+ event: ReactDOMResponderEvent,
308
+ context: ReactDOMResponderContext,
309
props: PressProps,
310
state: PressState,
311
): void {
@@ -367,8 +367,8 @@ function dispatchPressStartEvents(
367
}
368
369
function dispatchPressEndEvents(
370
- event: ?ReactResponderEvent,
371
- context: ReactResponderContext,
370
+ event: ?ReactDOMResponderEvent,
371
+ context: ReactDOMResponderContext,
372
props: PressProps,
373
state: PressState,
374
): void {
@@ -415,8 +415,8 @@ function dispatchPressEndEvents(
415
}
416
417
function dispatchCancel(
418
- event: ReactResponderEvent,
419
- context: ReactResponderContext,
418
+ event: ReactDOMResponderEvent,
419
+ context: ReactDOMResponderContext,
420
props: PressProps,
421
state: PressState,
422
): void {
@@ -447,7 +447,7 @@ function calculateDelayMS(delay: ?number, min = 0, fallback = 0) {
447
448
// TODO: account for touch hit slop
449
function calculateResponderRegion(
450
- context: ReactResponderContext,
450
+ context: ReactDOMResponderContext,
451
target: Element,
452
props: PressProps,
453
) {
@@ -512,7 +512,7 @@ function getEventViewportCoords(
512
}
513
514
function unmountResponder(
515
- context: ReactResponderContext,
515
+ context: ReactDOMResponderContext,
516
props: PressProps,
517
state: PressState,
518
): void {
@@ -523,7 +523,7 @@ function unmountResponder(
523
}
524
525
function addRootEventTypes(
526
- context: ReactResponderContext,
526
+ context: ReactDOMResponderContext,
527
state: PressState,
528
): void {
529
if (!state.addedRootEvents) {
@@ -533,7 +533,7 @@ function addRootEventTypes(
533
}
534
535
function removeRootEventTypes(
536
- context: ReactResponderContext,
536
+ context: ReactDOMResponderContext,
537
state: PressState,
538
): void {
539
if (state.addedRootEvents) {
@@ -556,7 +556,7 @@ function getTouchById(
556
return null;
557
}
558
559
-function getTouchTarget(context: ReactResponderContext, touchEvent: Touch) {
559
+function getTouchTarget(context: ReactDOMResponderContext, touchEvent: Touch) {
560
const doc = context.getActiveDocument();
561
return doc.elementFromPoint(touchEvent.clientX, touchEvent.clientY);
562
}
@@ -564,7 +564,7 @@ function getTouchTarget(context: ReactResponderContext, touchEvent: Touch) {
564
function updateIsPressWithinResponderRegion(
565
target: Element | Document,
566
nativeEventOrTouchEvent: Event | Touch,
567
- context: ReactResponderContext,
567
+ context: ReactDOMResponderContext,
568
props: PressProps,
569
state: PressState,
570
): void {
@@ -635,8 +635,8 @@ const PressResponder = {
635
},
636
allowMultipleHostChildren: false,
637
onEvent(
638
- event: ReactResponderEvent,
639
- context: ReactResponderContext,
638
+ event: ReactDOMResponderEvent,
639
+ context: ReactDOMResponderContext,
640
props: PressProps,
641
state: PressState,
642
): void {
@@ -760,8 +760,8 @@ const PressResponder = {
760
}
761
},
762
onRootEvent(
763
- event: ReactResponderEvent,
764
- context: ReactResponderContext,
763
+ event: ReactDOMResponderEvent,
764
+ context: ReactDOMResponderContext,
765
props: PressProps,
766
state: PressState,
767
): void {
@@ -941,14 +941,14 @@ const PressResponder = {
941
}
942
},
943
onUnmount(
944
- context: ReactResponderContext,
944
+ context: ReactDOMResponderContext,
945
props: PressProps,
946
state: PressState,
947
) {
948
unmountResponder(context, props, state);
949
},
950
onOwnershipChange(
951
- context: ReactResponderContext,
951
+ context: ReactDOMResponderContext,
952
props: PressProps,
953
state: PressState,
954
) {
@@ -956,4 +956,4 @@ const PressResponder = {
956
},
957
};
958
959
-export default React.unstable_createEventComponent(PressResponder, 'Press');
959
+export default ReactDOM.unstable_createEventComponent(PressResponder, 'Press');
packages/react-events/src/Scroll.js
+18
-15
@@ -8,14 +8,14 @@
8
*/
9
10
import type {
11
+ ReactDOMResponderEvent,
12
+ ReactDOMResponderContext,
13
PointerType,
12
- ReactResponderEvent,
13
- ReactResponderContext,
14
-} from 'shared/ReactTypes';
14
+} from 'shared/ReactDOMTypes';
15
import {UserBlockingEvent} from 'shared/ReactTypes';
16
import type {EventPriority} from 'shared/ReactTypes';
17
18
-import React from 'react';
18
+import ReactDOM from 'react-dom';
19
20
type ScrollProps = {
21
disabled: boolean,
@@ -61,8 +61,8 @@ const targetEventTypes = ['scroll', 'pointerdown', 'keyup'];
61
const rootEventTypes = ['pointermove', 'pointerup', 'pointercancel'];
62
63
function createScrollEvent(
64
- event: ?ReactResponderEvent,
65
- context: ReactResponderContext,
64
+ event: ?ReactDOMResponderEvent,
65
+ context: ReactDOMResponderContext,
66
type: ScrollEventType,
67
target: Element | Document,
68
pointerType: PointerType,
@@ -97,8 +97,8 @@ function createScrollEvent(
97
}
98
99
function dispatchEvent(
100
- event: ?ReactResponderEvent,
101
- context: ReactResponderContext,
100
+ event: ?ReactDOMResponderEvent,
101
+ context: ReactDOMResponderContext,
102
state: ScrollState,
103
name: ScrollEventType,
104
listener: (e: Object) => void,
@@ -127,8 +127,8 @@ const ScrollResponder = {
127
},
128
allowMultipleHostChildren: true,
129
onEvent(
130
- event: ReactResponderEvent,
131
- context: ReactResponderContext,
130
+ event: ReactDOMResponderEvent,
131
+ context: ReactDOMResponderContext,
132
props: ScrollProps,
133
state: ScrollState,
134
): void {
@@ -173,8 +173,8 @@ const ScrollResponder = {
173
}
174
},
175
onRootEvent(
176
- event: ReactResponderEvent,
177
- context: ReactResponderContext,
176
+ event: ReactDOMResponderEvent,
177
+ context: ReactDOMResponderContext,
178
props: ScrollProps,
179
state: ScrollState,
180
) {
@@ -196,14 +196,14 @@ const ScrollResponder = {
196
}
197
},
198
onUnmount(
199
- context: ReactResponderContext,
199
+ context: ReactDOMResponderContext,
200
props: ScrollProps,
201
state: ScrollState,
202
) {
203
// TODO
204
},
205
onOwnershipChange(
206
- context: ReactResponderContext,
206
+ context: ReactDOMResponderContext,
207
props: ScrollProps,
208
state: ScrollState,
209
) {
@@ -211,4 +211,7 @@ const ScrollResponder = {
211
},
212
};
213
214
-export default React.unstable_createEventComponent(ScrollResponder, 'Scroll');
214
+export default ReactDOM.unstable_createEventComponent(
215
+ ScrollResponder,
216
+ 'Scroll',
217
+);
packages/react-events/src/Swipe.js
+11
-11
@@ -8,12 +8,12 @@
8
*/
9
10
import type {
11
- ReactResponderEvent,
12
- ReactResponderContext,
13
-} from 'shared/ReactTypes';
11
+ ReactDOMResponderEvent,
12
+ ReactDOMResponderContext,
13
+} from 'shared/ReactDOMTypes';
14
import type {EventPriority} from 'shared/ReactTypes';
15
16
-import React from 'react';
16
+import ReactDOM from 'react-dom';
17
import {UserBlockingEvent, DiscreteEvent} from 'shared/ReactTypes';
18
19
const targetEventTypes = ['pointerdown'];
@@ -48,7 +48,7 @@ type SwipeEvent = {|
48
|};
49
50
function createSwipeEvent(
51
- context: ReactResponderContext,
51
+ context: ReactDOMResponderContext,
52
type: SwipeEventType,
53
target: Element | Document,
54
eventData?: EventData,
@@ -64,7 +64,7 @@ function createSwipeEvent(
64
}
65
66
function dispatchSwipeEvent(
67
- context: ReactResponderContext,
67
+ context: ReactDOMResponderContext,
68
name: SwipeEventType,
69
listener: SwipeEvent => void,
70
state: SwipeState,
@@ -105,8 +105,8 @@ const SwipeResponder = {
105
},
106
allowMultipleHostChildren: false,
107
onEvent(
108
- event: ReactResponderEvent,
109
- context: ReactResponderContext,
108
+ event: ReactDOMResponderEvent,
109
+ context: ReactDOMResponderContext,
110
props: Object,
111
state: SwipeState,
112
): void {
@@ -147,8 +147,8 @@ const SwipeResponder = {
147
}
148
},
149
onRootEvent(
150
- event: ReactResponderEvent,
151
- context: ReactResponderContext,
150
+ event: ReactDOMResponderEvent,
151
+ context: ReactDOMResponderContext,
152
props: Object,
153
state: SwipeState,
154
): void {
@@ -262,4 +262,4 @@ const SwipeResponder = {
262
},
263
};
264
265
-export default React.unstable_createEventComponent(SwipeResponder, 'Swipe');
265
+export default ReactDOM.unstable_createEventComponent(SwipeResponder, 'Swipe');
packages/react-native-renderer/src/ReactFabricHostConfig.js
+1
@@ -76,6 +76,7 @@ export type UpdatePayload = Object;
76
77
export type TimeoutHandle = TimeoutID;
78
export type NoTimeout = -1;
79
+export type EventResponder = any;
80
81
// TODO: Remove this conditional once all changes have propagated.
82
if (registerEventHandler) {
packages/react-native-renderer/src/ReactNativeHostConfig.js
+1
@@ -48,6 +48,7 @@ export type ChildSet = void; // Unused
48
49
export type TimeoutHandle = TimeoutID;
50
export type NoTimeout = -1;
51
+export type EventResponder = any;
52
53
const UPDATE_SIGNAL = {};
54
if (__DEV__) {
packages/react-reconciler/src/forks/ReactFiberHostConfig.custom.js
+1
@@ -37,6 +37,7 @@ export opaque type UpdatePayload = mixed; // eslint-disable-line no-undef
37
export opaque type ChildSet = mixed; // eslint-disable-line no-undef
38
export opaque type TimeoutHandle = mixed; // eslint-disable-line no-undef
39
export opaque type NoTimeout = mixed; // eslint-disable-line no-undef
40
+export type EventResponder = any;
41
42
export const getPublicInstance = $$$hostConfig.getPublicInstance;
43
export const getRootHostContext = $$$hostConfig.getRootHostContext;
packages/react-test-renderer/src/ReactTestHostConfig.js
+1
@@ -53,6 +53,7 @@ export type UpdatePayload = Object;
53
export type ChildSet = void; // Unused
54
export type TimeoutHandle = TimeoutID;
55
export type NoTimeout = -1;
56
+export type EventResponder = any;
57
58
export * from 'shared/HostConfigWithNoPersistence';
59
export * from 'shared/HostConfigWithNoHydration';
packages/react/src/React.js
+1
-6
@@ -14,7 +14,6 @@ import {
14
} from 'shared/ReactSymbols';
15
16
import {Component, PureComponent} from './ReactBaseClasses';
17
-import {createEventComponent} from './ReactCreateEventComponent';
17
import {createRef} from './ReactCreateRef';
18
import {forEach, map, count, toArray, only} from './ReactChildren';
19
import {
@@ -51,7 +50,7 @@ import {
50
} from './ReactElementValidator';
51
import ReactSharedInternals from './ReactSharedInternals';
52
import {error, warn} from './withComponentStack';
54
-import {enableEventAPI, enableJSXTransformAPI} from 'shared/ReactFeatureFlags';
53
+import {enableJSXTransformAPI} from 'shared/ReactFeatureFlags';
54
const React = {
55
Children: {
56
map,
@@ -106,10 +105,6 @@ const React = {
105
// don't modify the React object to avoid deopts.
106
// Also let's not expose their names in stable builds.
107
109
-if (enableEventAPI) {
110
- React.unstable_createEventComponent = createEventComponent;
111
-}
112
-
108
if (enableJSXTransformAPI) {
109
if (__DEV__) {
110
React.jsxDEV = jsxWithValidation;
packages/shared/ReactDOMTypes.js
new
+112
@@ -0,0 +1,112 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow
8
+ */
9
+
10
+import type {EventPriority} from 'shared/ReactTypes';
11
+
12
+type AnyNativeEvent = Event | KeyboardEvent | MouseEvent | Touch;
13
+
14
+export type ReactDOMEventResponderEventType =
15
+ | string
16
+ | {name: string, passive?: boolean};
17
+
18
+export type PointerType =
19
+ | ''
20
+ | 'mouse'
21
+ | 'keyboard'
22
+ | 'pen'
23
+ | 'touch'
24
+ | 'trackpad';
25
+
26
+export type ReactDOMResponderEvent = {
27
+ nativeEvent: AnyNativeEvent,
28
+ passive: boolean,
29
+ passiveSupported: boolean,
30
+ pointerId: null | number,
31
+ pointerType: PointerType,
32
+ target: Element | Document,
33
+ type: string,
34
+};
35
+
36
+export type ReactDOMEventResponder = {
37
+ targetEventTypes?: Array<ReactDOMEventResponderEventType>,
38
+ rootEventTypes?: Array<ReactDOMEventResponderEventType>,
39
+ createInitialState?: (props: null | Object) => Object,
40
+ allowMultipleHostChildren: boolean,
41
+ stopLocalPropagation: boolean,
42
+ onEvent?: (
43
+ event: ReactDOMResponderEvent,
44
+ context: ReactDOMResponderContext,
45
+ props: null | Object,
46
+ state: null | Object,
47
+ ) => void,
48
+ onEventCapture?: (
49
+ event: ReactDOMResponderEvent,
50
+ context: ReactDOMResponderContext,
51
+ props: null | Object,
52
+ state: null | Object,
53
+ ) => void,
54
+ onRootEvent?: (
55
+ event: ReactDOMResponderEvent,
56
+ context: ReactDOMResponderContext,
57
+ props: null | Object,
58
+ state: null | Object,
59
+ ) => void,
60
+ onMount?: (
61
+ context: ReactDOMResponderContext,
62
+ props: null | Object,
63
+ state: null | Object,
64
+ ) => void,
65
+ onUnmount?: (
66
+ context: ReactDOMResponderContext,
67
+ props: null | Object,
68
+ state: null | Object,
69
+ ) => void,
70
+ onOwnershipChange?: (
71
+ context: ReactDOMResponderContext,
72
+ props: null | Object,
73
+ state: null | Object,
74
+ ) => void,
75
+};
76
+
77
+export type ReactDOMResponderContext = {
78
+ dispatchEvent: (
79
+ eventObject: Object,
80
+ listener: (Object) => void,
81
+ eventPriority: EventPriority,
82
+ ) => void,
83
+ isTargetWithinElement: (
84
+ childTarget: Element | Document,
85
+ parentTarget: Element | Document,
86
+ ) => boolean,
87
+ isTargetWithinEventComponent: (Element | Document) => boolean,
88
+ isTargetWithinEventResponderScope: (Element | Document) => boolean,
89
+ isEventWithinTouchHitTarget: (event: ReactDOMResponderEvent) => boolean,
90
+ addRootEventTypes: (
91
+ rootEventTypes: Array<ReactDOMEventResponderEventType>,
92
+ ) => void,
93
+ removeRootEventTypes: (
94
+ rootEventTypes: Array<ReactDOMEventResponderEventType>,
95
+ ) => void,
96
+ hasOwnership: () => boolean,
97
+ requestGlobalOwnership: () => boolean,
98
+ releaseOwnership: () => boolean,
99
+ setTimeout: (func: () => void, timeout: number) => number,
100
+ clearTimeout: (timerId: number) => void,
101
+ getFocusableElementsInScope(): Array<HTMLElement>,
102
+ getActiveDocument(): Document,
103
+ objectAssign: Function,
104
+ getEventCurrentTarget(event: ReactDOMResponderEvent): Element,
105
+ getTimeStamp: () => number,
106
+ isTargetWithinHostComponent: (
107
+ target: Element | Document,
108
+ elementType: string,
109
+ deep: boolean,
110
+ ) => boolean,
111
+ continueLocalPropagation(): void,
112
+};
packages/shared/ReactTypes.js
+4
-103
@@ -7,6 +7,8 @@
7
* @flow
8
*/
9
10
+import type {EventResponder} from 'react-reconciler/src/ReactFiberHostConfig';
11
+
12
export type ReactNode =
13
| React$Element<any>
14
| ReactPortal
@@ -81,54 +83,10 @@ export type RefObject = {|
83
current: any,
84
|};
85
84
-export type ReactEventResponderEventType =
85
- | string
86
- | {name: string, passive?: boolean};
87
-
88
-export type ReactEventResponder = {
89
- targetEventTypes?: Array<ReactEventResponderEventType>,
90
- rootEventTypes?: Array<ReactEventResponderEventType>,
91
- createInitialState?: (props: null | Object) => Object,
92
- allowMultipleHostChildren: boolean,
93
- onEvent?: (
94
- event: ReactResponderEvent,
95
- context: ReactResponderContext,
96
- props: null | Object,
97
- state: null | Object,
98
- ) => void,
99
- onEventCapture?: (
100
- event: ReactResponderEvent,
101
- context: ReactResponderContext,
102
- props: null | Object,
103
- state: null | Object,
104
- ) => void,
105
- onRootEvent?: (
106
- event: ReactResponderEvent,
107
- context: ReactResponderContext,
108
- props: null | Object,
109
- state: null | Object,
110
- ) => void,
111
- onMount?: (
112
- context: ReactResponderContext,
113
- props: null | Object,
114
- state: null | Object,
115
- ) => void,
116
- onUnmount?: (
117
- context: ReactResponderContext,
118
- props: null | Object,
119
- state: null | Object,
120
- ) => void,
121
- onOwnershipChange?: (
122
- context: ReactResponderContext,
123
- props: null | Object,
124
- state: null | Object,
125
- ) => void,
126
-};
127
-
86
export type ReactEventComponentInstance = {|
87
currentFiber: mixed,
88
props: null | Object,
131
- responder: ReactEventResponder,
89
+ responder: EventResponder,
90
rootEventTypes: null | Set<string>,
91
rootInstance: mixed,
92
state: null | Object,
@@ -138,7 +96,7 @@ export type ReactEventComponent = {|
96
$$typeof: Symbol | number,
97
displayName: string,
98
props: null | Object,
141
- responder: ReactEventResponder,
99
+ responder: EventResponder,
100
|};
101
102
export type ReactEventTarget = {|
@@ -147,65 +105,8 @@ export type ReactEventTarget = {|
105
type: Symbol | number,
106
|};
107
150
-type AnyNativeEvent = Event | KeyboardEvent | MouseEvent | Touch;
151
-
152
-export type PointerType =
153
- | ''
154
- | 'mouse'
155
- | 'keyboard'
156
- | 'pen'
157
- | 'touch'
158
- | 'trackpad';
159
-
160
-export type ReactResponderEvent = {
161
- nativeEvent: AnyNativeEvent,
162
- passive: boolean,
163
- passiveSupported: boolean,
164
- pointerId: null | number,
165
- pointerType: PointerType,
166
- target: Element | Document,
167
- type: string,
168
-};
169
-
108
export opaque type EventPriority = 0 | 1 | 2;
109
110
export const DiscreteEvent: EventPriority = 0;
111
export const UserBlockingEvent: EventPriority = 1;
112
export const ContinuousEvent: EventPriority = 2;
175
-
176
-export type ReactResponderContext = {
177
- dispatchEvent: (
178
- eventObject: Object,
179
- listener: (Object) => void,
180
- eventPriority: EventPriority,
181
- ) => void,
182
- isTargetWithinElement: (
183
- childTarget: Element | Document,
184
- parentTarget: Element | Document,
185
- ) => boolean,
186
- isTargetWithinEventComponent: (Element | Document) => boolean,
187
- isTargetWithinEventResponderScope: (Element | Document) => boolean,
188
- isEventWithinTouchHitTarget: (event: ReactResponderEvent) => boolean,
189
- addRootEventTypes: (
190
- rootEventTypes: Array<ReactEventResponderEventType>,
191
- ) => void,
192
- removeRootEventTypes: (
193
- rootEventTypes: Array<ReactEventResponderEventType>,
194
- ) => void,
195
- hasOwnership: () => boolean,
196
- requestGlobalOwnership: () => boolean,
197
- releaseOwnership: () => boolean,
198
- setTimeout: (func: () => void, timeout: number) => number,
199
- clearTimeout: (timerId: number) => void,
200
- getFocusableElementsInScope(): Array<HTMLElement>,
201
- getActiveDocument(): Document,
202
- objectAssign: Function,
203
- getEventCurrentTarget(event: ReactResponderEvent): Element,
204
- getTimeStamp: () => number,
205
- isTargetWithinHostComponent: (
206
- target: Element | Document,
207
- elementType: string,
208
- deep: boolean,
209
- ) => boolean,
210
- continueLocalPropagation(): void,
211
-};
packages/shared/createEventComponent.js
renamed
+20
-23
@@ -6,9 +6,8 @@
6
* @flow
7
*/
8
9
-import type {ReactEventComponent, ReactEventResponder} from 'shared/ReactTypes';
10
-import {enableEventAPI} from 'shared/ReactFeatureFlags';
11
-
9
+import type {EventResponder} from 'react-reconciler/src/ReactFiberHostConfig';
10
+import type {ReactEventComponent} from 'shared/ReactTypes';
11
import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
12
13
let hasBadMapPolyfill;
@@ -30,26 +29,24 @@ if (__DEV__) {
29
}
30
}
31
33
-export function createEventComponent(
34
- responder: ReactEventResponder,
32
+export default function createEventComponent(
33
+ responder: EventResponder,
34
displayName: string,
36
-): ?ReactEventComponent {
37
- if (enableEventAPI) {
38
- // We use responder as a Map key later on. When we have a bad
39
- // polyfill, then we can't use it as a key as the polyfill tries
40
- // to add a property to the object.
41
- if (__DEV__ && !hasBadMapPolyfill) {
42
- Object.freeze(responder);
43
- }
44
- const eventComponent = {
45
- $$typeof: REACT_EVENT_COMPONENT_TYPE,
46
- displayName: displayName,
47
- props: null,
48
- responder: responder,
49
- };
50
- if (__DEV__) {
51
- Object.freeze(eventComponent);
52
- }
53
- return eventComponent;
35
+): ReactEventComponent {
36
+ // We use responder as a Map key later on. When we have a bad
37
+ // polyfill, then we can't use it as a key as the polyfill tries
38
+ // to add a property to the object.
39
+ if (__DEV__ && !hasBadMapPolyfill) {
40
+ Object.freeze(responder);
41
+ }
42
+ const eventComponent = {
43
+ $$typeof: REACT_EVENT_COMPONENT_TYPE,
44
+ displayName: displayName,
45
+ props: null,
46
+ responder: responder,
47
+ };
48
+ if (__DEV__) {
49
+ Object.freeze(eventComponent);
50
}
51
+ return eventComponent;
52
}
scripts/rollup/bundles.js
+7
-7
@@ -465,7 +465,7 @@ const bundles = [
465
moduleType: NON_FIBER_RENDERER,
466
entry: 'react-events/press',
467
global: 'ReactEventsPress',
468
- externals: ['react'],
468
+ externals: ['react-dom'],
469
},
470
471
{
@@ -480,7 +480,7 @@ const bundles = [
480
moduleType: NON_FIBER_RENDERER,
481
entry: 'react-events/hover',
482
global: 'ReactEventsHover',
483
- externals: ['react'],
483
+ externals: ['react-dom'],
484
},
485
486
{
@@ -495,7 +495,7 @@ const bundles = [
495
moduleType: NON_FIBER_RENDERER,
496
entry: 'react-events/focus',
497
global: 'ReactEventsFocus',
498
- externals: ['react'],
498
+ externals: ['react-dom'],
499
},
500
501
{
@@ -510,7 +510,7 @@ const bundles = [
510
moduleType: NON_FIBER_RENDERER,
511
entry: 'react-events/focus-scope',
512
global: 'ReactEventsFocusScope',
513
- externals: ['react'],
513
+ externals: ['react-dom'],
514
},
515
516
{
@@ -525,7 +525,7 @@ const bundles = [
525
moduleType: NON_FIBER_RENDERER,
526
entry: 'react-events/swipe',
527
global: 'ReactEventsSwipe',
528
- externals: ['react'],
528
+ externals: ['react-dom'],
529
},
530
531
{
@@ -540,7 +540,7 @@ const bundles = [
540
moduleType: NON_FIBER_RENDERER,
541
entry: 'react-events/drag',
542
global: 'ReactEventsDrag',
543
- externals: ['react'],
543
+ externals: ['react-dom'],
544
},
545
546
{
@@ -555,7 +555,7 @@ const bundles = [
555
moduleType: NON_FIBER_RENDERER,
556
entry: 'react-events/scroll',
557
global: 'ReactEventsScroll',
558
- externals: ['react'],
558
+ externals: ['react-dom'],
559
},
560
];
561