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