Skip to content

Commit f9a11bb

Browse files
excedfacebook-github-bot
authored andcommitted
Flow strict TextProps (facebook#22122)
Summary: Related to facebook#22100 Turn on Flow strict mode for TextProps. I used ResponseHandlers type definition defined in Text.js. I wanted to move ResponseHandlers type to TextProps and reuse it inside the file. I know I could use $Shape<> to maybe keys but how do I elegantly maybe every values ? Unless having a straightforward solution, I found it clearer to copy paste these types. - All flow tests succeed. [GENERAL] [ENHANCEMENT] [TextProps.js] - Flow strict mode Pull Request resolved: facebook#22122 Reviewed By: TheSavior Differential Revision: D13055759 Pulled By: RSNara fbshipit-source-id: 230b43c7c94d7f82f5727ad11541b0cb98bc5e3a
1 parent 4e36657 commit f9a11bb

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

Libraries/Text/Text.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ import type {PressRetentionOffset, TextProps} from 'TextProps';
2727

2828
type ResponseHandlers = $ReadOnly<{|
2929
onStartShouldSetResponder: () => boolean,
30-
onResponderGrant: (event: SyntheticEvent<>, dispatchID: string) => void,
31-
onResponderMove: (event: SyntheticEvent<>) => void,
32-
onResponderRelease: (event: SyntheticEvent<>) => void,
33-
onResponderTerminate: (event: SyntheticEvent<>) => void,
30+
onResponderGrant: (event: PressEvent, dispatchID: string) => void,
31+
onResponderMove: (event: PressEvent) => void,
32+
onResponderRelease: (event: PressEvent) => void,
33+
onResponderTerminate: (event: PressEvent) => void,
3434
onResponderTerminationRequest: () => boolean,
3535
|}>;
3636

@@ -93,12 +93,12 @@ class TouchableText extends React.Component<Props, State> {
9393
touchableHandleLongPress: ?(event: PressEvent) => void;
9494
touchableHandlePress: ?(event: PressEvent) => void;
9595
touchableHandleResponderGrant: ?(
96-
event: SyntheticEvent<>,
96+
event: PressEvent,
9797
dispatchID: string,
9898
) => void;
99-
touchableHandleResponderMove: ?(event: SyntheticEvent<>) => void;
100-
touchableHandleResponderRelease: ?(event: SyntheticEvent<>) => void;
101-
touchableHandleResponderTerminate: ?(event: SyntheticEvent<>) => void;
99+
touchableHandleResponderMove: ?(event: PressEvent) => void;
100+
touchableHandleResponderRelease: ?(event: PressEvent) => void;
101+
touchableHandleResponderTerminate: ?(event: PressEvent) => void;
102102
touchableHandleResponderTerminationRequest: ?() => boolean;
103103

104104
state = {
@@ -173,25 +173,25 @@ class TouchableText extends React.Component<Props, State> {
173173
}
174174
return shouldSetResponder;
175175
},
176-
onResponderGrant: (event: SyntheticEvent<>, dispatchID: string): void => {
176+
onResponderGrant: (event: PressEvent, dispatchID: string): void => {
177177
nullthrows(this.touchableHandleResponderGrant)(event, dispatchID);
178178
if (this.props.onResponderGrant != null) {
179179
this.props.onResponderGrant.call(this, event, dispatchID);
180180
}
181181
},
182-
onResponderMove: (event: SyntheticEvent<>): void => {
182+
onResponderMove: (event: PressEvent): void => {
183183
nullthrows(this.touchableHandleResponderMove)(event);
184184
if (this.props.onResponderMove != null) {
185185
this.props.onResponderMove.call(this, event);
186186
}
187187
},
188-
onResponderRelease: (event: SyntheticEvent<>): void => {
188+
onResponderRelease: (event: PressEvent): void => {
189189
nullthrows(this.touchableHandleResponderRelease)(event);
190190
if (this.props.onResponderRelease != null) {
191191
this.props.onResponderRelease.call(this, event);
192192
}
193193
},
194-
onResponderTerminate: (event: SyntheticEvent<>): void => {
194+
onResponderTerminate: (event: PressEvent): void => {
195195
nullthrows(this.touchableHandleResponderTerminate)(event);
196196
if (this.props.onResponderTerminate != null) {
197197
this.props.onResponderTerminate.call(this, event);

Libraries/Text/TextProps.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @flow
7+
* @flow strict-local
88
* @format
99
*/
1010

@@ -106,12 +106,12 @@ export type TextProps = $ReadOnly<{
106106
* See https://facebook.github.io/react-native/docs/text.html#onpress
107107
*/
108108
onPress?: ?(event: PressEvent) => mixed,
109-
onResponderGrant?: ?Function,
110-
onResponderMove?: ?Function,
111-
onResponderRelease?: ?Function,
112-
onResponderTerminate?: ?Function,
113-
onResponderTerminationRequest?: ?Function,
114-
onStartShouldSetResponder?: ?Function,
109+
onResponderGrant?: ?(event: PressEvent, dispatchID: string) => void,
110+
onResponderMove?: ?(event: PressEvent) => void,
111+
onResponderRelease?: ?(event: PressEvent) => void,
112+
onResponderTerminate?: ?(event: PressEvent) => void,
113+
onResponderTerminationRequest?: ?() => boolean,
114+
onStartShouldSetResponder?: ?() => boolean,
115115
onTextLayout?: ?(event: TextLayoutEvent) => mixed,
116116

117117
/**

0 commit comments

Comments
 (0)