@office-iss/react-native-win32 0.0.0-canary.285 → 0.0.0-canary.286
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +1 -1
- package/CHANGELOG.json +16 -1
- package/CHANGELOG.md +16 -8
- package/IntegrationTests/LayoutEventsTest.js +16 -11
- package/Libraries/Alert/Alert.js +51 -5
- package/Libraries/Alert/Alert.win32.js +50 -5
- package/Libraries/Animated/animations/Animation.js +1 -4
- package/Libraries/Animated/nodes/AnimatedObject.js +1 -0
- package/Libraries/AppState/AppState.js +24 -7
- package/Libraries/BatchedBridge/MessageQueue.js +3 -2
- package/Libraries/BatchedBridge/NativeModules.js +2 -1
- package/Libraries/Blob/Blob.js +1 -1
- package/Libraries/Blob/FileReader_old.js +9 -9
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +9 -9
- package/Libraries/Components/Button.js +3 -3
- package/Libraries/Components/Button.win32.js +3 -6
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/Pressable/Pressable.js +9 -9
- package/Libraries/Components/Pressable/Pressable.win32.js +9 -9
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -7
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +7 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.js +74 -59
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +5 -5
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +5 -2
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -3
- package/Libraries/Components/Switch/Switch.js +2 -2
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
- package/Libraries/Components/TextInput/TextInput.flow.js +15 -13
- package/Libraries/Components/TextInput/TextInput.js +16 -14
- package/Libraries/Components/TextInput/TextInput.win32.js +16 -14
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +16 -16
- package/Libraries/Components/Touchable/Touchable.win32.js +16 -16
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +7 -7
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +16 -2
- package/Libraries/Components/View/ViewAccessibility.js +243 -3
- package/Libraries/Components/View/ViewAccessibility.win32.js +243 -3
- package/Libraries/Components/View/ViewPropTypes.d.ts +14 -14
- package/Libraries/Components/View/ViewPropTypes.js +35 -226
- package/Libraries/Components/View/ViewPropTypes.win32.js +37 -229
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/Timers/JSTimers.js +6 -4
- package/Libraries/Core/setUpBatchedBridge.js +9 -5
- package/Libraries/Core/setUpDeveloperTools.js +3 -29
- package/Libraries/Core/setUpReactDevTools.js +1 -1
- package/Libraries/Core/setUpReactRefresh.js +1 -1
- package/Libraries/Core/setUpXHR.js +5 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +8 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +5 -4
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -2
- package/Libraries/Events/CustomEvent.js +1 -1
- package/Libraries/Events/EventPolyfill.js +2 -2
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/ImageProps.js +8 -5
- package/Libraries/Image/ImageViewNativeComponent.js +1 -1
- package/Libraries/Image/resolveAssetSource.win32.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +1 -1
- package/Libraries/Interaction/InteractionManagerStub.js +9 -1
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
- package/Libraries/Interaction/PanResponder.js +32 -29
- package/Libraries/Interaction/TaskQueue.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +18 -4
- package/Libraries/Lists/FillRateHelper.js +3 -3
- package/Libraries/Lists/FlatList.js +13 -13
- package/Libraries/Lists/SectionList.js +3 -1
- package/Libraries/Lists/SectionListModern.js +3 -1
- package/Libraries/Lists/ViewabilityHelper.js +3 -2
- package/Libraries/Lists/VirtualizeUtils.js +3 -3
- package/Libraries/Lists/VirtualizedList.js +5 -5
- package/Libraries/Lists/VirtualizedListContext.js +4 -2
- package/Libraries/Lists/VirtualizedSectionList.js +4 -2
- package/Libraries/LogBox/LogBox.js +9 -1
- package/Libraries/LogBox/UI/AnsiHighlight.js +7 -3
- package/Libraries/LogBox/UI/LogBoxButton.js +4 -2
- package/Libraries/LogBox/UI/LogBoxInspector.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +11 -3
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +2 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +8 -2
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +8 -2
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +2 -0
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +4 -2
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +3 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +3 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -3
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -3
- package/Libraries/LogBox/UI/LogBoxNotification.js +6 -2
- package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +3 -1
- package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +2 -0
- package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +4 -1
- package/Libraries/Modal/Modal.js +74 -81
- package/Libraries/NativeComponent/BaseViewConfig.android.js +16 -6
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -9
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +19 -9
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +5 -1
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +5 -6
- package/Libraries/Network/XMLHttpRequest_new.js +3 -2
- package/Libraries/Network/XMLHttpRequest_old.js +3 -2
- package/Libraries/Network/convertRequestBody.js +4 -3
- package/Libraries/Network/fetch.js +4 -3
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +63 -61
- package/Libraries/Pressability/Pressability.js +23 -23
- package/Libraries/Pressability/Pressability.win32.js +23 -23
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +119 -16
- package/Libraries/ReactNative/AppContainer-dev.js +2 -1
- package/Libraries/ReactNative/AppRegistry.js +3 -3
- package/Libraries/ReactNative/PaperUIManager.js +3 -2
- package/Libraries/ReactNative/PaperUIManager.win32.js +3 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +2 -1
- package/Libraries/ReactNative/RootTag.js +1 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +4 -4
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -4
- package/Libraries/Renderer/shims/ReactNativeTypes.js +4 -5
- package/Libraries/Settings/Settings.js +2 -2
- package/Libraries/Settings/Settings.win32.js +2 -2
- package/Libraries/Share/Share.js +10 -3
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.win32.js +2 -2
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +1 -1
- package/Libraries/StyleSheet/flattenStyle.js +1 -1
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processColor.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +4 -0
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +1 -1
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/Text/Text.js +15 -15
- package/Libraries/Text/Text.win32.js +15 -15
- package/Libraries/Text/TextAncestor.js +1 -1
- package/Libraries/Text/TextNativeComponent.js +2 -2
- package/Libraries/Text/TextNativeComponent.win32.js +2 -2
- package/Libraries/Text/TextProps.js +11 -11
- package/Libraries/Text/TextProps.win32.js +11 -11
- package/Libraries/Types/CodegenTypes.js +3 -3
- package/Libraries/Types/CoreEventTypes.js +103 -72
- package/Libraries/Types/CoreEventTypes.win32.js +115 -79
- package/Libraries/UTFSequence.js +2 -1
- package/Libraries/Utilities/BackHandler.android.js +1 -1
- package/Libraries/Utilities/BackHandler.ios.js +5 -5
- package/Libraries/Utilities/BackHandler.win32.js +1 -1
- package/Libraries/Utilities/DevLoadingView.js +1 -1
- package/Libraries/Utilities/DevSettings.js +1 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/DeviceInfo.win32.js +1 -1
- package/Libraries/Utilities/FeatureDetection.js +2 -4
- package/Libraries/Utilities/FocusManager.win32.js +3 -3
- package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -1
- package/Libraries/Utilities/HMRClient.js +5 -33
- package/Libraries/Utilities/HMRClientProdShim.js +1 -2
- package/Libraries/Utilities/Platform.android.js +2 -2
- package/Libraries/Utilities/Platform.ios.js +2 -2
- package/Libraries/Utilities/Platform.win32.js +2 -2
- package/Libraries/Utilities/{Platform.flow.win32.js → PlatformTypes.js} +1 -0
- package/Libraries/Utilities/PolyfillFunctions.js +3 -5
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +2 -2
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +3 -3
- package/Libraries/Utilities/differ/insetsDiffer.js +3 -3
- package/Libraries/Utilities/differ/matricesDiffer.js +3 -6
- package/Libraries/Utilities/differ/pointsDiffer.js +3 -3
- package/Libraries/Utilities/differ/sizesDiffer.js +3 -3
- package/Libraries/Utilities/dismissKeyboard.js +1 -1
- package/Libraries/Utilities/infoLog.js +1 -1
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/Vibration.js +3 -3
- package/Libraries/vendor/emitter/EventEmitter.js +21 -9
- package/index.js +113 -199
- package/index.win32.js +21 -13
- package/jest/setup.js +9 -2
- package/overrides.json +35 -34
- package/package.json +15 -15
- package/src/private/devmenu/DevMenu.js +1 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +22 -23
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +4 -7
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -4
- package/src/private/inspector/BoxInspector.js +1 -1
- package/src/private/inspector/ElementBox.js +3 -2
- package/src/private/inspector/ElementProperties.js +5 -3
- package/src/private/inspector/Inspector.js +2 -2
- package/src/private/inspector/InspectorOverlay.js +4 -4
- package/src/private/inspector/InspectorPanel.js +1 -1
- package/src/private/inspector/NetworkOverlay.js +4 -4
- package/src/private/inspector/PerformanceOverlay.js +3 -2
- package/src/private/inspector/ReactDevToolsOverlay.js +3 -3
- package/src/private/inspector/StyleInspector.js +1 -1
- package/src/private/inspector/XHRInterceptor.js +5 -2
- package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -1
- package/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +5 -4
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +92 -19
- package/src/private/webapis/dom/events/CustomEvent.js +5 -7
- package/src/private/webapis/dom/events/Event.js +5 -5
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -0
- package/src/private/webapis/html/events/MessageEvent.js +12 -19
- package/src/private/webapis/websockets/events/CloseEvent.js +9 -11
- package/src/private/webapis/xhr/events/ProgressEvent.js +9 -11
- package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +14 -14
- package/Libraries/Alert/Alert.flow.js +0 -62
- package/Libraries/Alert/RCTAlertManager.flow.js +0 -20
- package/Libraries/Utilities/Platform.flow.js +0 -91
- package/flow/react.js +0 -15
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import type {
|
|
12
|
-
|
|
12
|
+
LayoutChangeEvent,
|
|
13
13
|
MouseEvent,
|
|
14
|
-
|
|
14
|
+
GestureResponderEvent,
|
|
15
15
|
// [Windows
|
|
16
16
|
BlurEvent,
|
|
17
17
|
FocusEvent,
|
|
@@ -133,7 +133,7 @@ type Props = $ReadOnly<{
|
|
|
133
133
|
/**
|
|
134
134
|
* Called when this view's layout changes.
|
|
135
135
|
*/
|
|
136
|
-
onLayout?: ?(event:
|
|
136
|
+
onLayout?: ?(event: LayoutChangeEvent) => mixed,
|
|
137
137
|
|
|
138
138
|
/**
|
|
139
139
|
* Called when the hover is activated to provide visual feedback.
|
|
@@ -148,22 +148,22 @@ type Props = $ReadOnly<{
|
|
|
148
148
|
/**
|
|
149
149
|
* Called when a long-tap gesture is detected.
|
|
150
150
|
*/
|
|
151
|
-
onLongPress?: ?(event:
|
|
151
|
+
onLongPress?: ?(event: GestureResponderEvent) => mixed,
|
|
152
152
|
|
|
153
153
|
/**
|
|
154
154
|
* Called when a single tap gesture is detected.
|
|
155
155
|
*/
|
|
156
|
-
onPress?: ?(event:
|
|
156
|
+
onPress?: ?(event: GestureResponderEvent) => mixed,
|
|
157
157
|
|
|
158
158
|
/**
|
|
159
159
|
* Called when a touch is engaged before `onPress`.
|
|
160
160
|
*/
|
|
161
|
-
onPressIn?: ?(event:
|
|
161
|
+
onPressIn?: ?(event: GestureResponderEvent) => mixed,
|
|
162
162
|
|
|
163
163
|
/**
|
|
164
164
|
* Called when a touch is released before `onPress`.
|
|
165
165
|
*/
|
|
166
|
-
onPressOut?: ?(event:
|
|
166
|
+
onPressOut?: ?(event: GestureResponderEvent) => mixed,
|
|
167
167
|
|
|
168
168
|
/**
|
|
169
169
|
* Called after the element loses focus.
|
|
@@ -356,7 +356,7 @@ function Pressable(
|
|
|
356
356
|
onHoverOut,
|
|
357
357
|
onLongPress,
|
|
358
358
|
onPress,
|
|
359
|
-
onPressIn(event:
|
|
359
|
+
onPressIn(event: GestureResponderEvent): void {
|
|
360
360
|
if (android_rippleConfig != null) {
|
|
361
361
|
android_rippleConfig.onPressIn(event);
|
|
362
362
|
}
|
|
@@ -366,7 +366,7 @@ function Pressable(
|
|
|
366
366
|
}
|
|
367
367
|
},
|
|
368
368
|
onPressMove: android_rippleConfig?.onPressMove,
|
|
369
|
-
onPressOut(event:
|
|
369
|
+
onPressOut(event: GestureResponderEvent): void {
|
|
370
370
|
if (android_rippleConfig != null) {
|
|
371
371
|
android_rippleConfig.onPressOut(event);
|
|
372
372
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import type {ColorValue} from '../../StyleSheet/StyleSheet';
|
|
12
|
-
import type {
|
|
12
|
+
import type {GestureResponderEvent} from '../../Types/CoreEventTypes';
|
|
13
13
|
|
|
14
14
|
import processColor from '../../StyleSheet/processColor';
|
|
15
15
|
import Platform from '../../Utilities/Platform';
|
|
@@ -41,9 +41,9 @@ export default function useAndroidRippleForView(
|
|
|
41
41
|
rippleConfig: ?RippleConfig,
|
|
42
42
|
viewRef: {current: null | React.ElementRef<typeof View>},
|
|
43
43
|
): ?$ReadOnly<{
|
|
44
|
-
onPressIn: (event:
|
|
45
|
-
onPressMove: (event:
|
|
46
|
-
onPressOut: (event:
|
|
44
|
+
onPressIn: (event: GestureResponderEvent) => void,
|
|
45
|
+
onPressMove: (event: GestureResponderEvent) => void,
|
|
46
|
+
onPressOut: (event: GestureResponderEvent) => void,
|
|
47
47
|
viewProps:
|
|
48
48
|
| $ReadOnly<{nativeBackgroundAndroid: NativeBackgroundProp}>
|
|
49
49
|
| $ReadOnly<{nativeForegroundAndroid: NativeBackgroundProp}>,
|
|
@@ -75,7 +75,7 @@ export default function useAndroidRippleForView(
|
|
|
75
75
|
{nativeForegroundAndroid: nativeRippleValue}
|
|
76
76
|
: // $FlowFixMe[incompatible-return]
|
|
77
77
|
{nativeBackgroundAndroid: nativeRippleValue},
|
|
78
|
-
onPressIn(event:
|
|
78
|
+
onPressIn(event: GestureResponderEvent): void {
|
|
79
79
|
const view = viewRef.current;
|
|
80
80
|
if (view != null) {
|
|
81
81
|
Commands.hotspotUpdate(
|
|
@@ -86,7 +86,7 @@ export default function useAndroidRippleForView(
|
|
|
86
86
|
Commands.setPressed(view, true);
|
|
87
87
|
}
|
|
88
88
|
},
|
|
89
|
-
onPressMove(event:
|
|
89
|
+
onPressMove(event: GestureResponderEvent): void {
|
|
90
90
|
const view = viewRef.current;
|
|
91
91
|
if (view != null) {
|
|
92
92
|
Commands.hotspotUpdate(
|
|
@@ -96,7 +96,7 @@ export default function useAndroidRippleForView(
|
|
|
96
96
|
);
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
|
-
onPressOut(event:
|
|
99
|
+
onPressOut(event: GestureResponderEvent): void {
|
|
100
100
|
const view = viewRef.current;
|
|
101
101
|
if (view != null) {
|
|
102
102
|
Commands.setPressed(view, false);
|
|
@@ -4,9 +4,15 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
+
* @flow
|
|
7
8
|
* @format
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
11
|
'use strict';
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
import typeof UnimplementedViewType from '../UnimplementedViews/UnimplementedView';
|
|
14
|
+
import typeof ProgressBarAndroidNativeComponentType from './ProgressBarAndroidNativeComponent';
|
|
15
|
+
|
|
16
|
+
export default require('../UnimplementedViews/UnimplementedView').default as
|
|
17
|
+
| UnimplementedViewType
|
|
18
|
+
| ProgressBarAndroidNativeComponentType;
|
|
@@ -19,7 +19,7 @@ import PullToRefreshViewNativeComponent, {
|
|
|
19
19
|
} from './PullToRefreshViewNativeComponent';
|
|
20
20
|
import React from 'react';
|
|
21
21
|
|
|
22
|
-
const Platform = require('../../Utilities/Platform');
|
|
22
|
+
const Platform = require('../../Utilities/Platform').default;
|
|
23
23
|
|
|
24
24
|
type IOSProps = $ReadOnly<{
|
|
25
25
|
/**
|
|
@@ -14,8 +14,8 @@ import type {PointProp} from '../../StyleSheet/PointPropType';
|
|
|
14
14
|
import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
|
|
15
15
|
import type {ColorValue} from '../../StyleSheet/StyleSheet';
|
|
16
16
|
import type {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
LayoutChangeEvent,
|
|
18
|
+
GestureResponderEvent,
|
|
19
19
|
ScrollEvent,
|
|
20
20
|
} from '../../Types/CoreEventTypes';
|
|
21
21
|
import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
|
|
@@ -1105,7 +1105,11 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1105
1105
|
}
|
|
1106
1106
|
}
|
|
1107
1107
|
|
|
1108
|
-
_onStickyHeaderLayout(
|
|
1108
|
+
_onStickyHeaderLayout(
|
|
1109
|
+
index: number,
|
|
1110
|
+
event: LayoutChangeEvent,
|
|
1111
|
+
key: React.Key,
|
|
1112
|
+
) {
|
|
1109
1113
|
const {stickyHeaderIndices} = this.props;
|
|
1110
1114
|
if (!stickyHeaderIndices) {
|
|
1111
1115
|
return;
|
|
@@ -1136,7 +1140,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1136
1140
|
this.props.onScroll && this.props.onScroll(e);
|
|
1137
1141
|
};
|
|
1138
1142
|
|
|
1139
|
-
_handleLayout = (e:
|
|
1143
|
+
_handleLayout = (e: LayoutChangeEvent) => {
|
|
1140
1144
|
if (this.props.invertStickyHeaders === true) {
|
|
1141
1145
|
this.setState({layoutHeight: e.nativeEvent.layout.height});
|
|
1142
1146
|
}
|
|
@@ -1145,7 +1149,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1145
1149
|
}
|
|
1146
1150
|
};
|
|
1147
1151
|
|
|
1148
|
-
_handleContentOnLayout = (e:
|
|
1152
|
+
_handleContentOnLayout = (e: LayoutChangeEvent) => {
|
|
1149
1153
|
const {width, height} = e.nativeEvent.layout;
|
|
1150
1154
|
this.props.onContentSizeChange &&
|
|
1151
1155
|
this.props.onContentSizeChange(width, height);
|
|
@@ -1318,7 +1322,9 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1318
1322
|
/**
|
|
1319
1323
|
* Invoke this from an `onResponderGrant` event.
|
|
1320
1324
|
*/
|
|
1321
|
-
_handleResponderGrant: (e:
|
|
1325
|
+
_handleResponderGrant: (e: GestureResponderEvent) => void = (
|
|
1326
|
+
e: GestureResponderEvent,
|
|
1327
|
+
) => {
|
|
1322
1328
|
this._observedScrollSinceBecomingResponder = false;
|
|
1323
1329
|
this.props.onResponderGrant && this.props.onResponderGrant(e);
|
|
1324
1330
|
this._becameResponderWhileAnimating = this._isAnimating();
|
|
@@ -1339,7 +1345,9 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1339
1345
|
/**
|
|
1340
1346
|
* Invoke this from an `onResponderRelease` event.
|
|
1341
1347
|
*/
|
|
1342
|
-
_handleResponderRelease: (e:
|
|
1348
|
+
_handleResponderRelease: (e: GestureResponderEvent) => void = (
|
|
1349
|
+
e: GestureResponderEvent,
|
|
1350
|
+
) => {
|
|
1343
1351
|
this._isTouching = e.nativeEvent.touches.length !== 0;
|
|
1344
1352
|
this.props.onResponderRelease && this.props.onResponderRelease(e);
|
|
1345
1353
|
|
|
@@ -1424,8 +1432,8 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1424
1432
|
* true.
|
|
1425
1433
|
*
|
|
1426
1434
|
*/
|
|
1427
|
-
_handleStartShouldSetResponder: (e:
|
|
1428
|
-
e:
|
|
1435
|
+
_handleStartShouldSetResponder: (e: GestureResponderEvent) => boolean = (
|
|
1436
|
+
e: GestureResponderEvent,
|
|
1429
1437
|
) => {
|
|
1430
1438
|
// Allow any event touch pass through if the default pan responder is disabled
|
|
1431
1439
|
if (this.props.disableScrollViewPanResponder === true) {
|
|
@@ -1454,55 +1462,54 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1454
1462
|
*
|
|
1455
1463
|
* Invoke this from an `onStartShouldSetResponderCapture` event.
|
|
1456
1464
|
*/
|
|
1457
|
-
_handleStartShouldSetResponderCapture: (e:
|
|
1458
|
-
e:
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
}
|
|
1465
|
+
_handleStartShouldSetResponderCapture: (e: GestureResponderEvent) => boolean =
|
|
1466
|
+
(e: GestureResponderEvent) => {
|
|
1467
|
+
// The scroll view should receive taps instead of its descendants if:
|
|
1468
|
+
// * it is already animating/decelerating
|
|
1469
|
+
if (this._isAnimating()) {
|
|
1470
|
+
return true;
|
|
1471
|
+
}
|
|
1465
1472
|
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1473
|
+
// Allow any event touch pass through if the default pan responder is disabled
|
|
1474
|
+
if (this.props.disableScrollViewPanResponder === true) {
|
|
1475
|
+
return false;
|
|
1476
|
+
}
|
|
1470
1477
|
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
+
// * the keyboard is up, keyboardShouldPersistTaps is 'never' (the default),
|
|
1479
|
+
// and a new touch starts with a non-textinput target (in which case the
|
|
1480
|
+
// first tap should be sent to the scroll view and dismiss the keyboard,
|
|
1481
|
+
// then the second tap goes to the actual interior view)
|
|
1482
|
+
const {keyboardShouldPersistTaps} = this.props;
|
|
1483
|
+
const keyboardNeverPersistTaps =
|
|
1484
|
+
!keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';
|
|
1485
|
+
|
|
1486
|
+
if (typeof e.target === 'number') {
|
|
1487
|
+
if (__DEV__) {
|
|
1488
|
+
console.error(
|
|
1489
|
+
'Did not expect event target to be a number. Should have been a native component',
|
|
1490
|
+
);
|
|
1491
|
+
}
|
|
1478
1492
|
|
|
1479
|
-
|
|
1480
|
-
if (__DEV__) {
|
|
1481
|
-
console.error(
|
|
1482
|
-
'Did not expect event target to be a number. Should have been a native component',
|
|
1483
|
-
);
|
|
1493
|
+
return false;
|
|
1484
1494
|
}
|
|
1485
1495
|
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
if (this._softKeyboardIsDetached()) {
|
|
1491
|
-
return false;
|
|
1492
|
-
}
|
|
1496
|
+
// Let presses through if the soft keyboard is detached from the viewport
|
|
1497
|
+
if (this._softKeyboardIsDetached()) {
|
|
1498
|
+
return false;
|
|
1499
|
+
}
|
|
1493
1500
|
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1501
|
+
if (
|
|
1502
|
+
keyboardNeverPersistTaps &&
|
|
1503
|
+
this._keyboardIsDismissible() &&
|
|
1504
|
+
e.target != null &&
|
|
1505
|
+
// $FlowFixMe[incompatible-call]
|
|
1506
|
+
!TextInputState.isTextInput(e.target)
|
|
1507
|
+
) {
|
|
1508
|
+
return true;
|
|
1509
|
+
}
|
|
1503
1510
|
|
|
1504
|
-
|
|
1505
|
-
|
|
1511
|
+
return false;
|
|
1512
|
+
};
|
|
1506
1513
|
|
|
1507
1514
|
/**
|
|
1508
1515
|
* Do we consider there to be a dismissible soft-keyboard open?
|
|
@@ -1546,9 +1553,11 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1546
1553
|
/**
|
|
1547
1554
|
* Invoke this from an `onTouchEnd` event.
|
|
1548
1555
|
*
|
|
1549
|
-
* @param {
|
|
1556
|
+
* @param {GestureResponderEvent} e Event.
|
|
1550
1557
|
*/
|
|
1551
|
-
_handleTouchEnd: (e:
|
|
1558
|
+
_handleTouchEnd: (e: GestureResponderEvent) => void = (
|
|
1559
|
+
e: GestureResponderEvent,
|
|
1560
|
+
) => {
|
|
1552
1561
|
const nativeEvent = e.nativeEvent;
|
|
1553
1562
|
this._isTouching = nativeEvent.touches.length !== 0;
|
|
1554
1563
|
|
|
@@ -1576,9 +1585,11 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1576
1585
|
/**
|
|
1577
1586
|
* Invoke this from an `onTouchCancel` event.
|
|
1578
1587
|
*
|
|
1579
|
-
* @param {
|
|
1588
|
+
* @param {GestureResponderEvent} e Event.
|
|
1580
1589
|
*/
|
|
1581
|
-
_handleTouchCancel: (e:
|
|
1590
|
+
_handleTouchCancel: (e: GestureResponderEvent) => void = (
|
|
1591
|
+
e: GestureResponderEvent,
|
|
1592
|
+
) => {
|
|
1582
1593
|
this._isTouching = false;
|
|
1583
1594
|
this.props.onTouchCancel && this.props.onTouchCancel(e);
|
|
1584
1595
|
};
|
|
@@ -1592,9 +1603,11 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1592
1603
|
* responder). The `onResponderReject` won't fire in that case - it only
|
|
1593
1604
|
* fires when a *current* responder rejects our request.
|
|
1594
1605
|
*
|
|
1595
|
-
* @param {
|
|
1606
|
+
* @param {GestureResponderEvent} e Touch Start event.
|
|
1596
1607
|
*/
|
|
1597
|
-
_handleTouchStart: (e:
|
|
1608
|
+
_handleTouchStart: (e: GestureResponderEvent) => void = (
|
|
1609
|
+
e: GestureResponderEvent,
|
|
1610
|
+
) => {
|
|
1598
1611
|
this._isTouching = true;
|
|
1599
1612
|
this.props.onTouchStart && this.props.onTouchStart(e);
|
|
1600
1613
|
};
|
|
@@ -1608,9 +1621,11 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1608
1621
|
* responder). The `onResponderReject` won't fire in that case - it only
|
|
1609
1622
|
* fires when a *current* responder rejects our request.
|
|
1610
1623
|
*
|
|
1611
|
-
* @param {
|
|
1624
|
+
* @param {GestureResponderEvent} e Touch Start event.
|
|
1612
1625
|
*/
|
|
1613
|
-
_handleTouchMove: (e:
|
|
1626
|
+
_handleTouchMove: (e: GestureResponderEvent) => void = (
|
|
1627
|
+
e: GestureResponderEvent,
|
|
1628
|
+
) => {
|
|
1614
1629
|
this.props.onTouchMove && this.props.onTouchMove(e);
|
|
1615
1630
|
};
|
|
1616
1631
|
|
|
@@ -42,7 +42,7 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
42
42
|
},
|
|
43
43
|
validAttributes: {
|
|
44
44
|
contentOffset: {
|
|
45
|
-
diff: require('../../Utilities/differ/pointsDiffer'),
|
|
45
|
+
diff: require('../../Utilities/differ/pointsDiffer').default,
|
|
46
46
|
},
|
|
47
47
|
decelerationRate: true,
|
|
48
48
|
disableIntervalMomentum: true,
|
|
@@ -126,10 +126,10 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
126
126
|
canCancelContentTouches: true,
|
|
127
127
|
centerContent: true,
|
|
128
128
|
contentInset: {
|
|
129
|
-
diff: require('../../Utilities/differ/insetsDiffer'),
|
|
129
|
+
diff: require('../../Utilities/differ/insetsDiffer').default,
|
|
130
130
|
},
|
|
131
131
|
contentOffset: {
|
|
132
|
-
diff: require('../../Utilities/differ/pointsDiffer'),
|
|
132
|
+
diff: require('../../Utilities/differ/pointsDiffer').default,
|
|
133
133
|
},
|
|
134
134
|
contentInsetAdjustmentBehavior: true,
|
|
135
135
|
decelerationRate: true,
|
|
@@ -147,7 +147,7 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
147
147
|
scrollEnabled: true,
|
|
148
148
|
scrollEventThrottle: true,
|
|
149
149
|
scrollIndicatorInsets: {
|
|
150
|
-
diff: require('../../Utilities/differ/insetsDiffer'),
|
|
150
|
+
diff: require('../../Utilities/differ/insetsDiffer').default,
|
|
151
151
|
},
|
|
152
152
|
scrollToOverflowEnabled: true,
|
|
153
153
|
scrollsToTop: true,
|
|
@@ -159,7 +159,7 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
159
159
|
snapToOffsets: true,
|
|
160
160
|
snapToStart: true,
|
|
161
161
|
verticalScrollIndicatorInsets: {
|
|
162
|
-
diff: require('../../Utilities/differ/insetsDiffer'),
|
|
162
|
+
diff: require('../../Utilities/differ/insetsDiffer').default,
|
|
163
163
|
},
|
|
164
164
|
zoomScale: true,
|
|
165
165
|
...ConditionallyIgnoredEventHandlers({
|
|
@@ -13,7 +13,10 @@
|
|
|
13
13
|
import type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
|
|
14
14
|
import type {PointProp} from '../../StyleSheet/PointPropType';
|
|
15
15
|
import type {ColorValue} from '../../StyleSheet/StyleSheet';
|
|
16
|
-
import type {
|
|
16
|
+
import type {
|
|
17
|
+
GestureResponderEvent,
|
|
18
|
+
ScrollEvent,
|
|
19
|
+
} from '../../Types/CoreEventTypes';
|
|
17
20
|
import type {ViewProps} from '../View/ViewPropTypes';
|
|
18
21
|
|
|
19
22
|
export type ScrollViewNativeProps = $ReadOnly<{
|
|
@@ -76,6 +79,6 @@ export type ScrollViewNativeProps = $ReadOnly<{
|
|
|
76
79
|
snapToStart?: ?boolean,
|
|
77
80
|
zoomScale?: ?number,
|
|
78
81
|
// Overrides
|
|
79
|
-
onResponderGrant?: ?(e:
|
|
82
|
+
onResponderGrant?: ?(e: GestureResponderEvent) => void | boolean,
|
|
80
83
|
...
|
|
81
84
|
}>;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type {LayoutChangeEvent} from '../../Types/CoreEventTypes';
|
|
12
12
|
|
|
13
13
|
import Animated from '../../Animated/Animated';
|
|
14
14
|
import {isPublicInstance as isFabricPublicInstance} from '../../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils';
|
|
@@ -21,7 +21,7 @@ import {useCallback, useEffect, useMemo, useRef, useState} from 'react';
|
|
|
21
21
|
export type Props = $ReadOnly<{
|
|
22
22
|
children?: React.Node,
|
|
23
23
|
nextHeaderLayoutY: ?number,
|
|
24
|
-
onLayout: (event:
|
|
24
|
+
onLayout: (event: LayoutChangeEvent) => void,
|
|
25
25
|
scrollAnimatedValue: Animated.Value,
|
|
26
26
|
// Will cause sticky headers to stick at the bottom of the ScrollView instead
|
|
27
27
|
// of the top.
|
|
@@ -253,7 +253,7 @@ const ScrollViewStickyHeaderWithForwardedRef: component(
|
|
|
253
253
|
isFabric,
|
|
254
254
|
]);
|
|
255
255
|
|
|
256
|
-
const _onLayout = (event:
|
|
256
|
+
const _onLayout = (event: LayoutChangeEvent) => {
|
|
257
257
|
setLayoutY(event.nativeEvent.layout.y);
|
|
258
258
|
setLayoutHeight(event.nativeEvent.layout.height);
|
|
259
259
|
setMeasured(true);
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import type {ColorValue} from '../../StyleSheet/StyleSheet';
|
|
12
|
-
import type {
|
|
12
|
+
import type {NativeSyntheticEvent} from '../../Types/CoreEventTypes';
|
|
13
13
|
import type {ViewProps} from '../View/ViewPropTypes';
|
|
14
14
|
|
|
15
15
|
import StyleSheet from '../../StyleSheet/StyleSheet';
|
|
@@ -23,7 +23,7 @@ import SwitchNativeComponent, {
|
|
|
23
23
|
} from './SwitchNativeComponent';
|
|
24
24
|
import * as React from 'react';
|
|
25
25
|
|
|
26
|
-
type SwitchChangeEvent =
|
|
26
|
+
type SwitchChangeEvent = NativeSyntheticEvent<
|
|
27
27
|
$ReadOnly<{
|
|
28
28
|
value: boolean,
|
|
29
29
|
target: number,
|
|
@@ -98,7 +98,9 @@ const RCTTextInputViewConfig = {
|
|
|
98
98
|
fontWeight: true,
|
|
99
99
|
fontVariant: true,
|
|
100
100
|
// flowlint-next-line untyped-import:off
|
|
101
|
-
textShadowOffset: {
|
|
101
|
+
textShadowOffset: {
|
|
102
|
+
diff: require('../../Utilities/differ/sizesDiffer').default,
|
|
103
|
+
},
|
|
102
104
|
allowFontScaling: true,
|
|
103
105
|
fontStyle: true,
|
|
104
106
|
textTransform: true,
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
|
|
12
12
|
import type {
|
|
13
|
-
|
|
13
|
+
GestureResponderEvent,
|
|
14
14
|
ScrollEvent,
|
|
15
|
-
|
|
15
|
+
NativeSyntheticEvent,
|
|
16
16
|
} from '../../Types/CoreEventTypes';
|
|
17
17
|
import type {ViewProps} from '../View/ViewPropTypes';
|
|
18
18
|
|
|
@@ -31,9 +31,10 @@ export type TextInputChangeEventData = $ReadOnly<{
|
|
|
31
31
|
text: string,
|
|
32
32
|
}>;
|
|
33
33
|
|
|
34
|
-
export type TextInputChangeEvent =
|
|
34
|
+
export type TextInputChangeEvent =
|
|
35
|
+
NativeSyntheticEvent<TextInputChangeEventData>;
|
|
35
36
|
|
|
36
|
-
export type TextInputEvent =
|
|
37
|
+
export type TextInputEvent = NativeSyntheticEvent<
|
|
37
38
|
$ReadOnly<{
|
|
38
39
|
eventCount: number,
|
|
39
40
|
previousText: string,
|
|
@@ -55,7 +56,7 @@ export type TextInputContentSizeChangeEventData = $ReadOnly<{
|
|
|
55
56
|
}>;
|
|
56
57
|
|
|
57
58
|
export type TextInputContentSizeChangeEvent =
|
|
58
|
-
|
|
59
|
+
NativeSyntheticEvent<TextInputContentSizeChangeEventData>;
|
|
59
60
|
|
|
60
61
|
export type TargetEvent = $ReadOnly<{
|
|
61
62
|
target: number,
|
|
@@ -63,8 +64,8 @@ export type TargetEvent = $ReadOnly<{
|
|
|
63
64
|
|
|
64
65
|
export type TextInputFocusEventData = TargetEvent;
|
|
65
66
|
|
|
66
|
-
export type TextInputBlurEvent =
|
|
67
|
-
export type TextInputFocusEvent =
|
|
67
|
+
export type TextInputBlurEvent = NativeSyntheticEvent<TextInputFocusEventData>;
|
|
68
|
+
export type TextInputFocusEvent = NativeSyntheticEvent<TextInputFocusEventData>;
|
|
68
69
|
|
|
69
70
|
type Selection = $ReadOnly<{
|
|
70
71
|
start: number,
|
|
@@ -77,7 +78,7 @@ export type TextInputSelectionChangeEventData = $ReadOnly<{
|
|
|
77
78
|
}>;
|
|
78
79
|
|
|
79
80
|
export type TextInputSelectionChangeEvent =
|
|
80
|
-
|
|
81
|
+
NativeSyntheticEvent<TextInputSelectionChangeEventData>;
|
|
81
82
|
|
|
82
83
|
export type TextInputKeyPressEventData = $ReadOnly<{
|
|
83
84
|
...TargetEvent,
|
|
@@ -86,7 +87,8 @@ export type TextInputKeyPressEventData = $ReadOnly<{
|
|
|
86
87
|
eventCount: number,
|
|
87
88
|
}>;
|
|
88
89
|
|
|
89
|
-
export type TextInputKeyPressEvent =
|
|
90
|
+
export type TextInputKeyPressEvent =
|
|
91
|
+
NativeSyntheticEvent<TextInputKeyPressEventData>;
|
|
90
92
|
|
|
91
93
|
export type TextInputEndEditingEventData = $ReadOnly<{
|
|
92
94
|
...TargetEvent,
|
|
@@ -95,7 +97,7 @@ export type TextInputEndEditingEventData = $ReadOnly<{
|
|
|
95
97
|
}>;
|
|
96
98
|
|
|
97
99
|
export type TextInputEditingEvent =
|
|
98
|
-
|
|
100
|
+
NativeSyntheticEvent<TextInputEndEditingEventData>;
|
|
99
101
|
|
|
100
102
|
type DataDetectorTypesType =
|
|
101
103
|
| 'phoneNumber'
|
|
@@ -817,17 +819,17 @@ export type TextInputProps = $ReadOnly<{
|
|
|
817
819
|
/**
|
|
818
820
|
* Called when a single tap gesture is detected.
|
|
819
821
|
*/
|
|
820
|
-
onPress?: ?(event:
|
|
822
|
+
onPress?: ?(event: GestureResponderEvent) => mixed,
|
|
821
823
|
|
|
822
824
|
/**
|
|
823
825
|
* Called when a touch is engaged.
|
|
824
826
|
*/
|
|
825
|
-
onPressIn?: ?(event:
|
|
827
|
+
onPressIn?: ?(event: GestureResponderEvent) => mixed,
|
|
826
828
|
|
|
827
829
|
/**
|
|
828
830
|
* Called when a touch is released.
|
|
829
831
|
*/
|
|
830
|
-
onPressOut?: ?(event:
|
|
832
|
+
onPressOut?: ?(event: GestureResponderEvent) => mixed,
|
|
831
833
|
|
|
832
834
|
/**
|
|
833
835
|
* Callback that is called when the text input selection is changed.
|