[react-events] Keyboard: fix callback return types (#16693)
Nicolas Gallagher committed
Sep 9, 2019 at 09:07 UTC
f26fe8c0a7950ebee023e30745203a33ef27deb8
1 file changed
+7
-5
packages/react-events/src/dom/Keyboard.js
+7
-5
@@ -20,8 +20,8 @@ type KeyboardEventType = 'keydown' | 'keyup';
20
21
type KeyboardProps = {
22
disabled: boolean,
23
- onKeyDown: (e: KeyboardEvent) => void,
24
- onKeyUp: (e: KeyboardEvent) => void,
23
+ onKeyDown: (e: KeyboardEvent) => ?boolean,
24
+ onKeyUp: (e: KeyboardEvent) => ?boolean,
25
preventKeys: Array<string>,
26
};
27
@@ -162,7 +162,7 @@ function createKeyboardEvent(
162
163
function dispatchKeyboardEvent(
164
event: ReactDOMResponderEvent,
165
- listener: KeyboardEvent => void,
165
+ listener: KeyboardEvent => ?boolean,
166
context: ReactDOMResponderContext,
167
type: KeyboardEventType,
168
defaultPrevented: boolean,
@@ -209,9 +209,11 @@ const keyboardResponderImpl = {
209
const config = ((preventKey[1]: any): Object);
210
for (let s = 0; s < modifiers.length; s++) {
211
const modifier = modifiers[s];
212
+ const configModifier = config[modifier];
213
+ const eventModifier = nativeEvent[modifier];
214
if (
213
- (config[modifier] && !nativeEvent[modifier]) ||
214
- (!config[modifier] && nativeEvent[modifier])
215
+ (configModifier && !eventModifier) ||
216
+ (!configModifier && eventModifier)
217
) {
218
continue preventKeyLoop;
219
}