@samitouri / QOS-React / commits / c64b330032

Move EventTypes to ReactTypes (#15364)

Dominic Gannaway committed Apr 10, 2019 at 09:55 UTC c64b330032cef887ac5f787ac4a50bb4eeca4e1d
8 files changed +109 -103
packages/events/EventTypes.js deleted
-53
@@ -1,53 +0,0 @@
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 {AnyNativeEvent} from 'events/PluginModuleType';
11 -import type {ReactEventResponderEventType} from 'shared/ReactTypes';
12 -
13 -export type ResponderEvent = {
14 - nativeEvent: AnyNativeEvent,
15 - target: Element | Document,
16 - type: string,
17 - passive: boolean,
18 - passiveSupported: boolean,
19 -};
20 -
21 -export type ResponderDispatchEventOptions = {
22 - capture?: boolean,
23 - discrete?: boolean,
24 - stopPropagation?: boolean,
25 -};
26 -
27 -export type ResponderContext = {
28 - dispatchEvent: (
29 - eventObject: Object,
30 - otpions: ResponderDispatchEventOptions,
31 - ) => void,
32 - isTargetWithinElement: (
33 - childTarget: Element | Document,
34 - parentTarget: Element | Document,
35 - ) => boolean,
36 - isTargetWithinEventComponent: (Element | Document) => boolean,
37 - isPositionWithinTouchHitTarget: (
38 - doc: Document,
39 - x: number,
40 - y: number,
41 - ) => boolean,
42 - addRootEventTypes: (
43 - document: Document,
44 - rootEventTypes: Array<ReactEventResponderEventType>,
45 - ) => void,
46 - removeRootEventTypes: (
47 - rootEventTypes: Array<ReactEventResponderEventType>,
48 - ) => void,
49 - hasOwnership: () => boolean,
50 - requestOwnership: () => boolean,
51 - releaseOwnership: () => boolean,
52 - setTimeout: (func: () => void, timeout: number) => TimeoutID,
53 -};
packages/react-dom/src/events/DOMEventResponderSystem.js
+7 -9
@@ -6,11 +6,6 @@
6 * @flow
7 */
8
9 -import type {
10 - ResponderContext,
11 - ResponderEvent,
12 - ResponderDispatchEventOptions,
13 -} from 'events/EventTypes';
9 import {
10 type EventSystemFlags,
11 IS_PASSIVE,
@@ -24,6 +19,9 @@ import {
19 import type {
20 ReactEventResponderEventType,
21 ReactEventComponentInstance,
22 + ReactResponderContext,
23 + ReactResponderEvent,
24 + ReactResponderDispatchEventOptions,
25 } from 'shared/ReactTypes';
26 import type {DOMTopLevelEventType} from 'events/TopLevelEventTypes';
27 import {batchedUpdates, interactiveUpdates} from 'events/ReactGenericBatching';
@@ -58,10 +56,10 @@ let currentOwner = null;
56 let currentInstance: ReactEventComponentInstance;
57 let currentEventQueue: EventQueue;
58
61 -const eventResponderContext: ResponderContext = {
59 +const eventResponderContext: ReactResponderContext = {
60 dispatchEvent(
61 possibleEventObject: Object,
64 - {capture, discrete, stopPropagation}: ResponderDispatchEventOptions,
62 + {capture, discrete, stopPropagation}: ReactResponderDispatchEventOptions,
63 ): void {
64 const eventQueue = currentEventQueue;
65 const {listener, target, type} = possibleEventObject;
@@ -260,7 +258,7 @@ function createResponderEvent(
258 nativeEvent: AnyNativeEvent,
259 nativeEventTarget: Element | Document,
260 eventSystemFlags: EventSystemFlags,
263 -): ResponderEvent {
261 +): ReactResponderEvent {
262 return {
263 nativeEvent: nativeEvent,
264 target: nativeEventTarget,
@@ -342,7 +340,7 @@ function getTargetEventTypes(
340
341 function handleTopLevelType(
342 topLevelType: DOMTopLevelEventType,
345 - responderEvent: ResponderEvent,
343 + responderEvent: ReactResponderEvent,
344 eventComponentInstance: ReactEventComponentInstance,
345 isRootLevelEvent: boolean,
346 ): void {
packages/react-events/src/Drag.js
+7 -4
@@ -7,7 +7,10 @@
7 * @flow
8 */
9
10 -import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
10 +import type {
11 + ReactResponderEvent,
12 + ReactResponderContext,
13 +} from 'shared/ReactTypes';
14 import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
15
16 const targetEventTypes = ['pointerdown', 'pointercancel'];
@@ -62,7 +65,7 @@ function createDragEvent(
65 }
66
67 function dispatchDragEvent(
65 - context: ResponderContext,
68 + context: ReactResponderContext,
69 name: DragEventType,
70 listener: DragEvent => void,
71 state: DragState,
@@ -88,8 +91,8 @@ const DragResponder = {
91 };
92 },
93 onEvent(
91 - event: ResponderEvent,
92 - context: ResponderContext,
94 + event: ReactResponderEvent,
95 + context: ReactResponderContext,
96 props: Object,
97 state: DragState,
98 ): void {
packages/react-events/src/Focus.js
+10 -7
@@ -7,7 +7,10 @@
7 * @flow
8 */
9
10 -import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
10 +import type {
11 + ReactResponderEvent,
12 + ReactResponderContext,
13 +} from 'shared/ReactTypes';
14 import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
15
16 type FocusProps = {
@@ -47,8 +50,8 @@ function createFocusEvent(
50 }
51
52 function dispatchFocusInEvents(
50 - event: ResponderEvent,
51 - context: ResponderContext,
53 + event: ReactResponderEvent,
54 + context: ReactResponderContext,
55 props: FocusProps,
56 ) {
57 const {nativeEvent, target} = event;
@@ -69,8 +72,8 @@ function dispatchFocusInEvents(
72 }
73
74 function dispatchFocusOutEvents(
72 - event: ResponderEvent,
73 - context: ResponderContext,
75 + event: ReactResponderEvent,
76 + context: ReactResponderContext,
77 props: FocusProps,
78 ) {
79 const {nativeEvent, target} = event;
@@ -98,8 +101,8 @@ const FocusResponder = {
101 };
102 },
103 onEvent(
101 - event: ResponderEvent,
102 - context: ResponderContext,
104 + event: ReactResponderEvent,
105 + context: ReactResponderContext,
106 props: Object,
107 state: FocusState,
108 ): void {
packages/react-events/src/Hover.js
+12 -9
@@ -7,7 +7,10 @@
7 * @flow
8 */
9
10 -import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
10 +import type {
11 + ReactResponderEvent,
12 + ReactResponderContext,
13 +} from 'shared/ReactTypes';
14 import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
15
16 type HoverProps = {
@@ -64,8 +67,8 @@ function createHoverEvent(
67 }
68
69 function dispatchHoverChangeEvent(
67 - event: ResponderEvent,
68 - context: ResponderContext,
70 + event: ReactResponderEvent,
71 + context: ReactResponderContext,
72 props: HoverProps,
73 state: HoverState,
74 ): void {
@@ -81,8 +84,8 @@ function dispatchHoverChangeEvent(
84 }
85
86 function dispatchHoverStartEvents(
84 - event: ResponderEvent,
85 - context: ResponderContext,
87 + event: ReactResponderEvent,
88 + context: ReactResponderContext,
89 props: HoverProps,
90 state: HoverState,
91 ): void {
@@ -132,8 +135,8 @@ function dispatchHoverStartEvents(
135 }
136
137 function dispatchHoverEndEvents(
135 - event: ResponderEvent,
136 - context: ResponderContext,
138 + event: ReactResponderEvent,
139 + context: ReactResponderContext,
140 props: HoverProps,
141 state: HoverState,
142 ) {
@@ -199,8 +202,8 @@ const HoverResponder = {
202 };
203 },
204 onEvent(
202 - event: ResponderEvent,
203 - context: ResponderContext,
205 + event: ReactResponderEvent,
206 + context: ReactResponderContext,
207 props: HoverProps,
208 state: HoverState,
209 ): void {
packages/react-events/src/Press.js
+18 -11
@@ -7,7 +7,10 @@
7 * @flow
8 */
9
10 -import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
10 +import type {
11 + ReactResponderEvent,
12 + ReactResponderContext,
13 +} from 'shared/ReactTypes';
14 import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
15
16 type PressProps = {
@@ -89,7 +92,7 @@ function createPressEvent(
92 }
93
94 function dispatchEvent(
92 - context: ResponderContext,
95 + context: ReactResponderContext,
96 state: PressState,
97 name: PressEventType,
98 listener: (e: Object) => void,
@@ -100,7 +103,7 @@ function dispatchEvent(
103 }
104
105 function dispatchPressChangeEvent(
103 - context: ResponderContext,
106 + context: ReactResponderContext,
107 props: PressProps,
108 state: PressState,
109 ): void {
@@ -111,7 +114,7 @@ function dispatchPressChangeEvent(
114 }
115
116 function dispatchLongPressChangeEvent(
114 - context: ResponderContext,
117 + context: ReactResponderContext,
118 props: PressProps,
119 state: PressState,
120 ): void {
@@ -150,7 +153,7 @@ function deactivate(context, props, state) {
153 }
154
155 function dispatchPressStartEvents(
153 - context: ResponderContext,
156 + context: ReactResponderContext,
157 props: PressProps,
158 state: PressState,
159 ): void {
@@ -212,7 +215,7 @@ function dispatchPressStartEvents(
215 }
216
217 function dispatchPressEndEvents(
215 - context: ResponderContext,
218 + context: ReactResponderContext,
219 props: PressProps,
220 state: PressState,
221 ): void {
@@ -265,7 +268,7 @@ function calculateDelayMS(delay: ?number, min = 0, fallback = 0) {
268 }
269
270 function unmountResponder(
268 - context: ResponderContext,
271 + context: ReactResponderContext,
272 props: PressProps,
273 state: PressState,
274 ): void {
@@ -293,8 +296,8 @@ const PressResponder = {
296 };
297 },
298 onEvent(
296 - event: ResponderEvent,
297 - context: ResponderContext,
299 + event: ReactResponderEvent,
300 + context: ReactResponderContext,
301 props: PressProps,
302 state: PressState,
303 ): void {
@@ -491,12 +494,16 @@ const PressResponder = {
494 }
495 }
496 },
494 - onUnmount(context: ResponderContext, props: PressProps, state: PressState) {
497 + onUnmount(
498 + context: ReactResponderContext,
499 + props: PressProps,
500 + state: PressState,
501 + ) {
502 unmountResponder(context, props, state);
503 },
504 // TODO This method doesn't work as of yet
505 onOwnershipChange(
499 - context: ResponderContext,
506 + context: ReactResponderContext,
507 props: PressProps,
508 state: PressState,
509 ) {
packages/react-events/src/Swipe.js
+7 -4
@@ -7,7 +7,10 @@
7 * @flow
8 */
9
10 -import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
10 +import type {
11 + ReactResponderEvent,
12 + ReactResponderContext,
13 +} from 'shared/ReactTypes';
14 import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
15
16 const targetEventTypes = ['pointerdown', 'pointercancel'];
@@ -52,7 +55,7 @@ function createSwipeEvent(
55 }
56
57 function dispatchSwipeEvent(
55 - context: ResponderContext,
58 + context: ReactResponderContext,
59 name: SwipeEventType,
60 listener: SwipeEvent => void,
61 state: SwipeState,
@@ -92,8 +95,8 @@ const SwipeResponder = {
95 };
96 },
97 onEvent(
95 - event: ResponderEvent,
96 - context: ResponderContext,
98 + event: ReactResponderEvent,
99 + context: ReactResponderContext,
100 props: Object,
101 state: SwipeState,
102 ): void {
packages/shared/ReactTypes.js
+48 -6
@@ -7,8 +7,6 @@
7 * @flow
8 */
9
10 -import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
11 -
10 export type ReactNode =
11 | React$Element<any>
12 | ReactPortal
@@ -91,18 +89,18 @@ export type ReactEventResponder = {
89 targetEventTypes: Array<ReactEventResponderEventType>,
90 createInitialState?: (props: null | Object) => Object,
91 onEvent: (
94 - event: ResponderEvent,
95 - context: ResponderContext,
92 + event: ReactResponderEvent,
93 + context: ReactResponderContext,
94 props: null | Object,
95 state: null | Object,
96 ) => void,
97 onUnmount: (
100 - context: ResponderContext,
98 + context: ReactResponderContext,
99 props: null | Object,
100 state: null | Object,
101 ) => void,
102 onOwnershipChange: (
105 - context: ResponderContext,
103 + context: ReactResponderContext,
104 props: null | Object,
105 state: null | Object,
106 ) => void,
@@ -128,3 +126,47 @@ export type ReactEventTarget = {|
126 displayName?: string,
127 type: Symbol | number,
128 |};
129 +
130 +type AnyNativeEvent = Event | KeyboardEvent | MouseEvent | Touch;
131 +
132 +export type ReactResponderEvent = {
133 + nativeEvent: AnyNativeEvent,
134 + target: Element | Document,
135 + type: string,
136 + passive: boolean,
137 + passiveSupported: boolean,
138 +};
139 +
140 +export type ReactResponderDispatchEventOptions = {
141 + capture?: boolean,
142 + discrete?: boolean,
143 + stopPropagation?: boolean,
144 +};
145 +
146 +export type ReactResponderContext = {
147 + dispatchEvent: (
148 + eventObject: Object,
149 + otpions: ReactResponderDispatchEventOptions,
150 + ) => void,
151 + isTargetWithinElement: (
152 + childTarget: Element | Document,
153 + parentTarget: Element | Document,
154 + ) => boolean,
155 + isTargetWithinEventComponent: (Element | Document) => boolean,
156 + isPositionWithinTouchHitTarget: (
157 + doc: Document,
158 + x: number,
159 + y: number,
160 + ) => boolean,
161 + addRootEventTypes: (
162 + document: Document,
163 + rootEventTypes: Array<ReactEventResponderEventType>,
164 + ) => void,
165 + removeRootEventTypes: (
166 + rootEventTypes: Array<ReactEventResponderEventType>,
167 + ) => void,
168 + hasOwnership: () => boolean,
169 + requestOwnership: () => boolean,
170 + releaseOwnership: () => boolean,
171 + setTimeout: (func: () => void, timeout: number) => TimeoutID,
172 +};