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 = {|