@@ -20,8 +20,8 @@ type KeyboardEventType = 'keydown' | 'keyup';
2020
2121type KeyboardProps = {
2222disabled : boolean ,
23- onKeyDown : ( e : KeyboardEvent ) => void ,
24- onKeyUp : ( e : KeyboardEvent ) => void ,
23+ onKeyDown : ( e : KeyboardEvent ) => ? boolean ,
24+ onKeyUp : ( e : KeyboardEvent ) => ? boolean ,
2525preventKeys : Array < string > ,
2626} ;
2727
@@ -162,7 +162,7 @@ function createKeyboardEvent(
162162
163163function dispatchKeyboardEvent (
164164event : ReactDOMResponderEvent ,
165- listener : KeyboardEvent => void ,
165+ listener : KeyboardEvent => ? boolean ,
166166context : ReactDOMResponderContext ,
167167type : KeyboardEventType ,
168168defaultPrevented : boolean ,
@@ -209,9 +209,11 @@ const keyboardResponderImpl = {
209209const config = ( ( preventKey [ 1 ] : any ) : Object ) ;
210210for ( let s = 0 ; s < modifiers . length ; s ++ ) {
211211const modifier = modifiers [ s ] ;
212+ const configModifier = config [ modifier ] ;
213+ const eventModifier = nativeEvent [ modifier ] ;
212214if (
213- ( config [ modifier ] && ! nativeEvent [ modifier ] ) ||
214- ( ! config [ modifier ] && nativeEvent [ modifier ] )
215+ ( configModifier && ! eventModifier ) ||
216+ ( ! configModifier && eventModifier )
215217) {
216218continue preventKeyLoop;
217219}
0 commit comments