@@ -31,7 +31,6 @@ import type {
31
31
PressEvent ,
32
32
ScrollEvent ,
33
33
LayoutEvent ,
34
- KeyboardEvent ,
35
34
} from '../../Types/CoreEventTypes' ;
36
35
import type { EdgeInsetsProp } from '../../StyleSheet/EdgeInsetsPropType' ;
37
36
import type { NativeMethodsMixinType } from '../../Renderer/shims/ReactNativeTypes' ;
@@ -883,58 +882,61 @@ class ScrollView extends React.Component<Props, State> {
883
882
}
884
883
885
884
// [TODO(macOS ISS#2323203)
886
- _handleKeyDown = ( e : KeyboardEvent ) => {
887
- if ( this . props . onKeyDown ) {
888
- this . props . onKeyDown ( e ) ;
885
+ _handleKeyDown = ( event : ScrollEvent ) => {
886
+ if ( this . props . onScrollKeyDown ) {
887
+ this . props . onScrollKeyDown ( event ) ;
889
888
} else {
890
- const event = e . nativeEvent ;
891
- const key = event . key ;
892
- const kMinScrollOffset = 10 ;
893
-
894
889
if ( Platform . OS === 'macos' ) {
890
+ const nativeEvent = event . nativeEvent ;
891
+ const key = nativeEvent . key ;
892
+ const kMinScrollOffset = 10 ;
895
893
if ( key === 'PAGE_UP' ) {
896
894
this . _handleScrollByKeyDown ( event , {
897
- x : event . contentOffset . x ,
898
- y : event . contentOffset . y + - event . layoutMeasurement . height ,
895
+ x : nativeEvent . contentOffset . x ,
896
+ y :
897
+ nativeEvent . contentOffset . y +
898
+ - nativeEvent . layoutMeasurement . height ,
899
899
} ) ;
900
900
} else if ( key === 'PAGE_DOWN' ) {
901
901
this . _handleScrollByKeyDown ( event , {
902
- x : event . contentOffset . x ,
903
- y : event . contentOffset . y + event . layoutMeasurement . height ,
902
+ x : nativeEvent . contentOffset . x ,
903
+ y :
904
+ nativeEvent . contentOffset . y +
905
+ nativeEvent . layoutMeasurement . height ,
904
906
} ) ;
905
907
} else if ( key === 'LEFT_ARROW' ) {
906
908
this . _handleScrollByKeyDown ( event , {
907
909
x :
908
- event . contentOffset . x +
909
- - ( this . props . horizontalLineScroll = == undefined
910
+ nativeEvent . contentOffset . x +
911
+ - ( this . props . horizontalLineScroll ! == undefined
910
912
? this . props . horizontalLineScroll
911
913
: kMinScrollOffset ) ,
912
- y : event . contentOffset . y ,
914
+ y : nativeEvent . contentOffset . y ,
913
915
} ) ;
914
916
} else if ( key === 'RIGHT_ARROW' ) {
915
917
this . _handleScrollByKeyDown ( event , {
916
918
x :
917
- event . contentOffset . x +
918
- ( this . props . horizontalLineScroll = == undefined
919
+ nativeEvent . contentOffset . x +
920
+ ( this . props . horizontalLineScroll ! == undefined
919
921
? this . props . horizontalLineScroll
920
922
: kMinScrollOffset ) ,
921
- y : event . contentOffset . y ,
923
+ y : nativeEvent . contentOffset . y ,
922
924
} ) ;
923
925
} else if ( key === 'DOWN_ARROW' ) {
924
926
this . _handleScrollByKeyDown ( event , {
925
- x : event . contentOffset . x ,
927
+ x : nativeEvent . contentOffset . x ,
926
928
y :
927
- event . contentOffset . y +
928
- ( this . props . verticalLineScroll = == undefined
929
+ nativeEvent . contentOffset . y +
930
+ ( this . props . verticalLineScroll ! == undefined
929
931
? this . props . verticalLineScroll
930
932
: kMinScrollOffset ) ,
931
933
} ) ;
932
934
} else if ( key === 'UP_ARROW' ) {
933
935
this . _handleScrollByKeyDown ( event , {
934
- x : event . contentOffset . x ,
936
+ x : nativeEvent . contentOffset . x ,
935
937
y :
936
- event . contentOffset . y +
937
- - ( this . props . verticalLineScroll = == undefined
938
+ nativeEvent . contentOffset . y +
939
+ - ( this . props . verticalLineScroll ! == undefined
938
940
? this . props . verticalLineScroll
939
941
: kMinScrollOffset ) ,
940
942
} ) ;
@@ -943,11 +945,13 @@ class ScrollView extends React.Component<Props, State> {
943
945
}
944
946
} ;
945
947
946
- _handleScrollByKeyDown = ( e : ScrollEvent , newOffset ) => {
948
+ _handleScrollByKeyDown = ( event : ScrollEvent , newOffset ) => {
947
949
const maxX =
948
- e . nativeEvent . contentSize . width - e . nativeEvent . layoutMeasurement . width ;
950
+ event . nativeEvent . contentSize . width -
951
+ event . nativeEvent . layoutMeasurement . width ;
949
952
const maxY =
950
- e . nativeEvent . contentSize . height - e . nativeEvent . layoutMeasurement . height ;
953
+ event . nativeEvent . contentSize . height -
954
+ event . nativeEvent . layoutMeasurement . height ;
951
955
this . scrollTo ( {
952
956
x : Math . max ( 0 , Math . min ( maxX , newOffset . x ) ) ,
953
957
y : Math . max ( 0 , Math . min ( maxY , newOffset . y ) ) ,
@@ -1133,7 +1137,7 @@ class ScrollView extends React.Component<Props, State> {
1133
1137
// Override the onContentSizeChange from props, since this event can
1134
1138
// bubble up from TextInputs
1135
1139
onContentSizeChange : null ,
1136
- onKeyDown : this . _handleKeyDown , // TODO(macOS ISS#2323203)
1140
+ onScrollKeyDown : this . _handleKeyDown , // TODO(macOS ISS#2323203)
1137
1141
onLayout : this . _handleLayout ,
1138
1142
onMomentumScrollBegin : this . _scrollResponder
1139
1143
. scrollResponderHandleMomentumScrollBegin ,
0 commit comments