@samitouri / QOS-React-2 / commits / ffefb4e77f

ModernEventSystem: refine Flow types (#18349)

Dominic Gannaway committed Mar 19, 2020 at 20:25 UTC ffefb4e77f39c38a6fabb8677a585b2aa3991cd3
5 files changed +14 -8
packages/react-dom/src/client/ReactDOMHostConfig.js
+1 -2
@@ -7,7 +7,6 @@
7 * @flow
8 */
9
10 -import type {DOMTopLevelEventType} from 'legacy-events/TopLevelEventTypes';
10 import type {RootType} from './ReactDOMRoot';
11
12 import {
@@ -1112,7 +1111,7 @@ export function registerEvent(
1111 // Add the event listener to the target container (falling back to
1112 // the target if we didn't find one).
1113 listenToTopLevelEvent(
1115 - ((type: any): DOMTopLevelEventType),
1114 + type,
1115 rootContainerInstance,
1116 listenerMap,
1117 passive,
packages/react-dom/src/client/ReactDOMUseEvent.js
+6 -2
@@ -7,6 +7,7 @@
7 * @flow
8 */
9
10 +import type {DOMTopLevelEventType} from 'legacy-events/TopLevelEventTypes';
11 import type {EventPriority} from 'shared/ReactTypes';
12 import type {
13 ReactDOMListenerEvent,
@@ -41,13 +42,13 @@ function resolveDispatcher() {
42 }
43
44 export function useEvent(
44 - type: string,
45 + type: DOMTopLevelEventType,
46 options?: EventOptions,
47 ): ReactDOMListenerMap {
48 const dispatcher = resolveDispatcher();
49 let capture = false;
50 let passive = undefined; // Undefined means to use the browser default
50 - let priority = getEventPriorityForListenerSystem((type: any));
51 + let priority;
52
53 if (options != null) {
54 const optionsCapture = options.capture;
@@ -64,6 +65,9 @@ export function useEvent(
65 priority = optionsPriority;
66 }
67 }
68 + if (priority === undefined) {
69 + priority = getEventPriorityForListenerSystem(type);
70 + }
71 const event: ReactDOMListenerEvent = {
72 capture,
73 passive,
packages/react-dom/src/events/DOMEventProperties.js
+4 -2
@@ -224,8 +224,10 @@ export function getEventPriorityForPluginSystem(
224 return priority === undefined ? ContinuousEvent : priority;
225 }
226
227 -export function getEventPriorityForListenerSystem(type: string): EventPriority {
228 - const priority = eventPriorities.get(((type: any): TopLevelType));
227 +export function getEventPriorityForListenerSystem(
228 + type: DOMTopLevelEventType,
229 +): EventPriority {
230 + const priority = eventPriorities.get(type);
231 if (priority !== undefined) {
232 return priority;
233 }
packages/react-dom/src/events/DOMModernPluginEventSystem.js
+1 -1
@@ -404,7 +404,7 @@ export function attachElementListener(listener: ReactDOMListener): void {
404 // Add the event listener to the target container (falling back to
405 // the target if we didn't find one).
406 listenToTopLevelEvent(
407 - ((type: any): DOMTopLevelEventType),
407 + type,
408 containerEventTarget,
409 listenerMap,
410 passive,
packages/shared/ReactDOMTypes.js
+2 -1
@@ -13,6 +13,7 @@ import type {
13 ReactEventResponderInstance,
14 EventPriority,
15 } from 'shared/ReactTypes';
16 +import type {DOMTopLevelEventType} from 'legacy-events/TopLevelEventTypes';
17
18 type AnyNativeEvent = Event | KeyboardEvent | MouseEvent | Touch;
19
@@ -80,7 +81,7 @@ export type ReactDOMListenerEvent = {|
81 capture: boolean,
82 passive: void | boolean,
83 priority: EventPriority,
83 - type: string,
84 + type: DOMTopLevelEventType,
85 |};
86
87 export type ReactDOMListenerMap = {|