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

[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 }