Skip to content

Commit d63d2f6

Browse files
committed
Address feedback
Fix
1 parent 2d66dc6 commit d63d2f6

File tree

3 files changed

+13
-15
lines changed

3 files changed

+13
-15
lines changed

packages/react-dom/src/events/DOMModernPluginEventSystem.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import type {DOMTopLevelEventType} from 'legacy-events/TopLevelEventTypes';
1212
import type {EventSystemFlags} from 'legacy-events/EventSystemFlags';
1313
import type {Fiber} from 'react-reconciler/src/ReactFiber';
1414
import type {PluginModule} from 'legacy-events/PluginModuleType';
15+
import type {ReactSyntheticEvent} from 'legacy-events/ReactSyntheticEventType';
1516

1617
import {registrationNameDependencies} from 'legacy-events/EventPluginRegistry';
1718
import {batchedEventUpdates} from 'legacy-events/ReactGenericBatching';
@@ -102,11 +103,11 @@ function dispatchEventsForPlugins(
102103
rootContainer: Element | Document,
103104
): void {
104105
const nativeEventTarget = getEventTarget(nativeEvent);
105-
const syntheticEvents = [];
106+
const syntheticEvents: Array<ReactSyntheticEvent> = [];
106107

107108
for (let i = 0; i < plugins.length; i++) {
108109
const possiblePlugin: PluginModule<AnyNativeEvent> = plugins[i];
109-
if (possiblePlugin) {
110+
if (possiblePlugin !== undefined) {
110111
const extractedEvents = possiblePlugin.extractEvents(
111112
topLevelType,
112113
targetInst,
@@ -115,12 +116,13 @@ function dispatchEventsForPlugins(
115116
eventSystemFlags,
116117
rootContainer,
117118
);
118-
if (extractedEvents) {
119-
if (isArray(extractedEvents)) {
120-
syntheticEvents.push(...(extractedEvents: any));
121-
} else {
122-
syntheticEvents.push(extractedEvents);
123-
}
119+
if (isArray(extractedEvents)) {
120+
// Flow complains about @@iterator being missing in ReactSyntheticEvent,
121+
// so we cast to avoid the Flow error.
122+
const arrOfExtractedEvents = ((extractedEvents: any): Array<ReactSyntheticEvent>);
123+
syntheticEvents.push(...arrOfExtractedEvents);
124+
} else if (extractedEvents) {
125+
syntheticEvents.push(extractedEvents);
124126
}
125127
}
126128
}

packages/react-dom/src/events/__tests__/DOMModernPluginEventSystem-test.internal.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,12 @@ let React;
1313
let ReactFeatureFlags;
1414
let ReactDOM;
1515

16-
function dispatchEvent(element, type) {
16+
function dispatchClickEvent(element) {
1717
const event = document.createEvent('Event');
18-
event.initEvent(type, true, true);
18+
event.initEvent('click', true, true);
1919
element.dispatchEvent(event);
2020
}
2121

22-
function dispatchClickEvent(element) {
23-
dispatchEvent(element, 'click');
24-
}
25-
2622
describe('DOMModernPluginEventSystem', () => {
2723
let container;
2824

packages/react-native-renderer/src/ReactNativeBridgeEventPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const ReactNativeBridgeEventPlugin = {
3434
nativeEvent: AnyNativeEvent,
3535
nativeEventTarget: null | Object,
3636
eventSystemFlags: EventSystemFlags,
37-
): ?Object {
37+
): Object | null {
3838
if (targetInst == null) {
3939
// Probably a node belonging to another renderer's tree.
4040
return null;

0 commit comments

Comments
 (0)