@office-iss/react-native-win32 0.84.1 → 0.85.0
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/.eslintignore +1 -0
- package/.flowconfig +1 -5
- package/CHANGELOG.json +73 -28
- package/CHANGELOG.md +18 -21
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/TimersTest.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Animated/Animated.d.ts +8 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -4
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/animations/Animation.js +3 -3
- package/Libraries/Animated/animations/DecayAnimation.js +4 -4
- package/Libraries/Animated/animations/SpringAnimation.js +5 -5
- package/Libraries/Animated/animations/TimingAnimation.js +5 -5
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
- package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
- package/Libraries/Animated/useAnimatedColor.js +25 -0
- package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValueXY.js +26 -0
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +3 -3
- package/Libraries/BatchedBridge/NativeModules.js +12 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +34 -30
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.win32.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
- package/Libraries/Components/EnterString.win32.js +2 -2
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +6 -6
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.win32.js +3 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
- package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
- package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
- package/Libraries/Components/ScrollView/ScrollView.js +19 -9
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +8 -8
- package/Libraries/Components/Switch/Switch.js +3 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
- package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +23 -22
- package/Libraries/Components/TextInput/TextInput.js +8 -4
- package/Libraries/Components/TextInput/TextInput.win32.js +3 -4
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/Touchable.win32.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
- package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +7 -7
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
- package/Libraries/Components/Touchable/TouchableWin32.js +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
- package/Libraries/Components/View/ViewAccessibility.js +7 -7
- package/Libraries/Components/View/ViewAccessibility.win32.js +7 -7
- package/Libraries/Components/View/ViewPropTypes.js +14 -14
- package/Libraries/Components/View/ViewPropTypes.win32.js +16 -16
- package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ExtendedError.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +3 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +4 -2
- package/Libraries/Core/setUpReactDevTools.js +23 -6
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +2 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/Image.android.js +172 -306
- package/Libraries/Image/ImageProps.js +9 -11
- package/Libraries/Image/ImageSource.js +2 -2
- package/Libraries/Image/ImageSourceUtils.js +8 -4
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/ImageViewNativeComponent.js +7 -16
- package/Libraries/Image/nativeImageSource.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +5 -4
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +3 -3
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +38 -24
- package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
- package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
- package/Libraries/LogBox/LogBox.js +42 -19
- package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
- package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +15 -16
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +11 -13
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +3 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
- package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +16 -16
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +5 -5
- package/Libraries/Pressability/Pressability.win32.js +5 -5
- package/Libraries/Pressability/PressabilityDebug.js +1 -1
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/Pressability/usePressability.js +3 -14
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +18 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +4 -4
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
- package/Libraries/Renderer/shims/ReactFabric.js +1 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
- package/Libraries/Renderer/shims/ReactNative.js +3 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
- package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
- package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
- package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
- package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
- package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
- package/Libraries/StyleSheet/processBoxShadow.js +44 -4
- package/Libraries/StyleSheet/processColorArray.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +2 -2
- package/Libraries/Text/Text.js +295 -627
- package/Libraries/Text/Text.win32.js +360 -744
- package/Libraries/Text/TextNativeComponent.js +14 -7
- package/Libraries/Text/TextNativeComponent.win32.js +14 -7
- package/Libraries/Text/TextProps.js +4 -4
- package/Libraries/Text/TextProps.win32.js +4 -4
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +21 -21
- package/Libraries/Types/CoreEventTypes.win32.js +22 -21
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/HMRClient.js +32 -5
- package/Libraries/Utilities/IPerformanceLogger.js +4 -4
- package/Libraries/Utilities/codegenNativeCommands.js +4 -4
- package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -3
- package/Libraries/Utilities/useMergeRefs.js +2 -2
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +16 -20
- package/flow/bom.js.flow +18 -17
- package/flow/dom.js.flow +12 -5
- package/flow/global.js +1 -1
- package/index.js +9 -0
- package/index.win32.js +9 -0
- package/index.win32.js.flow +8 -1
- package/jest/RefreshControlMock.js +2 -2
- package/jest/assetFileTransformer.js +8 -3
- package/jest/mockComponent.js +3 -4
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mocks/ActivityIndicator.js +2 -2
- package/jest/mocks/Image.js +2 -2
- package/jest/mocks/Modal.js +2 -2
- package/jest/mocks/RefreshControl.js +3 -3
- package/jest/mocks/RendererProxy.js +2 -2
- package/jest/mocks/ScrollView.js +5 -5
- package/jest/mocks/Text.js +2 -2
- package/jest/mocks/TextInput.js +2 -2
- package/jest/mocks/View.js +2 -2
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/mocks/requireNativeComponent.js +1 -1
- package/jest/mocks/useColorScheme.js +1 -1
- package/jest/setup.js +68 -31
- package/overrides.json +30 -36
- package/package.json +21 -18
- package/src/private/animated/NativeAnimatedHelper.js +2 -2
- package/src/private/animated/NativeAnimatedHelper.win32.js +2 -2
- package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
- package/src/private/components/virtualview/VirtualView.js +14 -21
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
- package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
- package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/utilities/toError.js +27 -0
- package/src/private/utilities/toExtendedError.js +30 -0
- package/src/private/webapis/dom/events/Event.js +1 -1
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
- package/src/private/webapis/dom/events/EventTarget.js +3 -3
- package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
- package/src/private/webapis/performance/LongTasks.js +3 -3
- package/src/private/webapis/performance/Performance.js +4 -4
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
- package/src/private/webapis/structuredClone/structuredClone.js +2 -2
- package/src/types/globals.d.ts +4 -4
- package/src-win/Libraries/Components/EnterString.win32.tsx +2 -2
- package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +14 -14
- package/src-win/index.win32.js.flow +8 -1
- package/types/index.d.ts +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +0 -94
- package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
|
@@ -34,10 +34,10 @@ export type InterpolationConfigSupportedOutputType =
|
|
|
34
34
|
|
|
35
35
|
export type InterpolationConfigType<
|
|
36
36
|
OutputT: InterpolationConfigSupportedOutputType,
|
|
37
|
-
> =
|
|
37
|
+
> = Readonly<{
|
|
38
38
|
...AnimatedNodeConfig,
|
|
39
|
-
inputRange:
|
|
40
|
-
outputRange:
|
|
39
|
+
inputRange: ReadonlyArray<number>,
|
|
40
|
+
outputRange: ReadonlyArray<OutputT>,
|
|
41
41
|
easing?: (input: number) => number,
|
|
42
42
|
extrapolate?: ExtrapolateType,
|
|
43
43
|
extrapolateLeft?: ExtrapolateType,
|
|
@@ -51,7 +51,7 @@ export type InterpolationConfigType<
|
|
|
51
51
|
function createNumericInterpolation(
|
|
52
52
|
config: InterpolationConfigType<number>,
|
|
53
53
|
): (input: number) => number {
|
|
54
|
-
const outputRange:
|
|
54
|
+
const outputRange: ReadonlyArray<number> = (config.outputRange: any);
|
|
55
55
|
const inputRange = config.inputRange;
|
|
56
56
|
|
|
57
57
|
const easing = config.easing || Easing.linear;
|
|
@@ -187,7 +187,7 @@ function mapStringToNumericComponents(
|
|
|
187
187
|
input: string,
|
|
188
188
|
):
|
|
189
189
|
| {isColor: true, components: [number, number, number, number]}
|
|
190
|
-
| {isColor: false, components:
|
|
190
|
+
| {isColor: false, components: ReadonlyArray<number | string>} {
|
|
191
191
|
let normalizedColor = normalizeColor(input);
|
|
192
192
|
invariant(
|
|
193
193
|
normalizedColor == null || typeof normalizedColor !== 'object',
|
|
@@ -262,7 +262,7 @@ function createStringInterpolation(
|
|
|
262
262
|
);
|
|
263
263
|
}
|
|
264
264
|
|
|
265
|
-
const numericComponents:
|
|
265
|
+
const numericComponents: ReadonlyArray<ReadonlyArray<number>> =
|
|
266
266
|
outputRange.map(output =>
|
|
267
267
|
isColor
|
|
268
268
|
? // $FlowFixMe[incompatible-type]
|
|
@@ -297,7 +297,7 @@ function createStringInterpolation(
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
-
function findRange(input: number, inputRange:
|
|
300
|
+
function findRange(input: number, inputRange: ReadonlyArray<number>) {
|
|
301
301
|
let i;
|
|
302
302
|
for (i = 1; i < inputRange.length - 1; ++i) {
|
|
303
303
|
if (inputRange[i] >= input) {
|
|
@@ -308,8 +308,8 @@ function findRange(input: number, inputRange: $ReadOnlyArray<number>) {
|
|
|
308
308
|
}
|
|
309
309
|
|
|
310
310
|
function checkValidRanges<OutputT: InterpolationConfigSupportedOutputType>(
|
|
311
|
-
inputRange:
|
|
312
|
-
outputRange:
|
|
311
|
+
inputRange: ReadonlyArray<number>,
|
|
312
|
+
outputRange: ReadonlyArray<OutputT>,
|
|
313
313
|
) {
|
|
314
314
|
checkInfiniteRange('outputRange', outputRange);
|
|
315
315
|
checkInfiniteRange('inputRange', inputRange);
|
|
@@ -325,7 +325,7 @@ function checkValidRanges<OutputT: InterpolationConfigSupportedOutputType>(
|
|
|
325
325
|
);
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
-
function checkValidInputRange(arr:
|
|
328
|
+
function checkValidInputRange(arr: ReadonlyArray<number>) {
|
|
329
329
|
invariant(arr.length >= 2, 'inputRange must have at least 2 elements');
|
|
330
330
|
const message =
|
|
331
331
|
'inputRange must be monotonically non-decreasing ' + String(arr);
|
|
@@ -336,7 +336,7 @@ function checkValidInputRange(arr: $ReadOnlyArray<number>) {
|
|
|
336
336
|
|
|
337
337
|
function checkInfiniteRange<OutputT: InterpolationConfigSupportedOutputType>(
|
|
338
338
|
name: string,
|
|
339
|
-
arr:
|
|
339
|
+
arr: ReadonlyArray<OutputT>,
|
|
340
340
|
) {
|
|
341
341
|
invariant(arr.length >= 2, name + ' must have at least 2 elements');
|
|
342
342
|
invariant(
|
|
@@ -428,7 +428,7 @@ export default class AnimatedInterpolation<
|
|
|
428
428
|
let outputType = null;
|
|
429
429
|
if (typeof outputRange[0] === 'string') {
|
|
430
430
|
// $FlowFixMe[incompatible-type]
|
|
431
|
-
outputRange = ((outputRange:
|
|
431
|
+
outputRange = ((outputRange: ReadonlyArray<string>).map(value => {
|
|
432
432
|
const processedColor = processColor(value);
|
|
433
433
|
if (typeof processedColor === 'number') {
|
|
434
434
|
outputType = 'color';
|
|
@@ -15,7 +15,7 @@ import invariant from 'invariant';
|
|
|
15
15
|
|
|
16
16
|
type ValueListenerCallback = (state: {value: number, ...}) => unknown;
|
|
17
17
|
|
|
18
|
-
export type AnimatedNodeConfig =
|
|
18
|
+
export type AnimatedNodeConfig = Readonly<{
|
|
19
19
|
debugID?: string,
|
|
20
20
|
unstable_disableBatchingForNativeCreate?: boolean,
|
|
21
21
|
}>;
|
|
@@ -34,7 +34,7 @@ export default class AnimatedNode {
|
|
|
34
34
|
_platformConfig: ?PlatformConfig = undefined;
|
|
35
35
|
|
|
36
36
|
constructor(
|
|
37
|
-
config?:
|
|
37
|
+
config?: ?Readonly<{
|
|
38
38
|
...AnimatedNodeConfig,
|
|
39
39
|
...
|
|
40
40
|
}>,
|
|
@@ -61,7 +61,7 @@ export default class AnimatedNode {
|
|
|
61
61
|
}
|
|
62
62
|
__addChild(child: AnimatedNode) {}
|
|
63
63
|
__removeChild(child: AnimatedNode) {}
|
|
64
|
-
__getChildren():
|
|
64
|
+
__getChildren(): ReadonlyArray<AnimatedNode> {
|
|
65
65
|
return [];
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -23,7 +23,7 @@ export function isPlainObject(
|
|
|
23
23
|
value: unknown,
|
|
24
24
|
/* $FlowFixMe[incompatible-type-guard] - Flow does not know that the prototype
|
|
25
25
|
and ReactElement checks preserve the type refinement of `value`. */
|
|
26
|
-
): value is
|
|
26
|
+
): value is Readonly<{[string]: unknown}> {
|
|
27
27
|
const proto =
|
|
28
28
|
value !== null && typeof value === 'object'
|
|
29
29
|
? Object.getPrototypeOf(value)
|
|
@@ -87,7 +87,7 @@ function mapAnimatedNodes(value: any, fn: any => any, depth: number = 0): any {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
export default class AnimatedObject extends AnimatedWithChildren {
|
|
90
|
-
_nodes:
|
|
90
|
+
_nodes: ReadonlyArray<AnimatedNode>;
|
|
91
91
|
_value: unknown;
|
|
92
92
|
|
|
93
93
|
/**
|
|
@@ -106,7 +106,7 @@ export default class AnimatedObject extends AnimatedWithChildren {
|
|
|
106
106
|
* Should only be called by `AnimatedObject.from`.
|
|
107
107
|
*/
|
|
108
108
|
constructor(
|
|
109
|
-
nodes:
|
|
109
|
+
nodes: ReadonlyArray<AnimatedNode>,
|
|
110
110
|
value: unknown,
|
|
111
111
|
config?: ?AnimatedNodeConfig,
|
|
112
112
|
) {
|
|
@@ -24,7 +24,7 @@ import AnimatedObject from './AnimatedObject';
|
|
|
24
24
|
import AnimatedStyle from './AnimatedStyle';
|
|
25
25
|
import invariant from 'invariant';
|
|
26
26
|
|
|
27
|
-
export type AnimatedPropsAllowlist =
|
|
27
|
+
export type AnimatedPropsAllowlist = Readonly<{
|
|
28
28
|
style?: ?AnimatedStyleAllowlist,
|
|
29
29
|
[key: string]: true | AnimatedStyleAllowlist,
|
|
30
30
|
}>;
|
|
@@ -38,7 +38,7 @@ type TargetViewInstance = React.ElementRef<React.ElementType>;
|
|
|
38
38
|
function createAnimatedProps(
|
|
39
39
|
inputProps: {[string]: unknown},
|
|
40
40
|
allowlist: ?AnimatedPropsAllowlist,
|
|
41
|
-
): [
|
|
41
|
+
): [ReadonlyArray<string>, ReadonlyArray<AnimatedNode>, {[string]: unknown}] {
|
|
42
42
|
const nodeKeys: Array<string> = [];
|
|
43
43
|
const nodes: Array<AnimatedNode> = [];
|
|
44
44
|
const props: {[string]: unknown} = {};
|
|
@@ -96,8 +96,8 @@ function createAnimatedProps(
|
|
|
96
96
|
|
|
97
97
|
export default class AnimatedProps extends AnimatedNode {
|
|
98
98
|
_callback: () => void;
|
|
99
|
-
_nodeKeys:
|
|
100
|
-
_nodes:
|
|
99
|
+
_nodeKeys: ReadonlyArray<string>;
|
|
100
|
+
_nodes: ReadonlyArray<AnimatedNode>;
|
|
101
101
|
_props: {[string]: unknown};
|
|
102
102
|
_target: ?TargetView = null;
|
|
103
103
|
_rootTag: ?RootTag = undefined;
|
|
@@ -179,7 +179,7 @@ export default class AnimatedProps extends AnimatedNode {
|
|
|
179
179
|
return props;
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
__getNativeAnimatedEventTuples():
|
|
182
|
+
__getNativeAnimatedEventTuples(): ReadonlyArray<[string, AnimatedEvent]> {
|
|
183
183
|
const tuples = [];
|
|
184
184
|
|
|
185
185
|
const keys = Object.keys(this._props);
|
|
@@ -358,6 +358,6 @@ export default class AnimatedProps extends AnimatedNode {
|
|
|
358
358
|
// this shim when they do.
|
|
359
359
|
// $FlowFixMe[method-unbinding]
|
|
360
360
|
const _hasOwnProp = Object.prototype.hasOwnProperty;
|
|
361
|
-
const hasOwn: (obj:
|
|
361
|
+
const hasOwn: (obj: Readonly<{...}>, prop: string) => boolean =
|
|
362
362
|
// $FlowFixMe[method-unbinding]
|
|
363
363
|
Object.hasOwn ?? ((obj, prop) => _hasOwnProp.call(obj, prop));
|
|
@@ -19,7 +19,7 @@ import AnimatedObject from './AnimatedObject';
|
|
|
19
19
|
import AnimatedTransform from './AnimatedTransform';
|
|
20
20
|
import AnimatedWithChildren from './AnimatedWithChildren';
|
|
21
21
|
|
|
22
|
-
export type AnimatedStyleAllowlist =
|
|
22
|
+
export type AnimatedStyleAllowlist = Readonly<{[string]: true}>;
|
|
23
23
|
|
|
24
24
|
type FlatStyle = {[string]: unknown};
|
|
25
25
|
type FlatStyleForWeb<TStyle: FlatStyle> = [unknown, TStyle];
|
|
@@ -28,7 +28,7 @@ function createAnimatedStyle(
|
|
|
28
28
|
flatStyle: FlatStyle,
|
|
29
29
|
allowlist: ?AnimatedStyleAllowlist,
|
|
30
30
|
keepUnanimatedValues: boolean,
|
|
31
|
-
): [
|
|
31
|
+
): [ReadonlyArray<string>, ReadonlyArray<AnimatedNode>, {[string]: unknown}] {
|
|
32
32
|
const nodeKeys: Array<string> = [];
|
|
33
33
|
const nodes: Array<AnimatedNode> = [];
|
|
34
34
|
const style: {[string]: unknown} = {};
|
|
@@ -83,8 +83,8 @@ function createAnimatedStyle(
|
|
|
83
83
|
|
|
84
84
|
export default class AnimatedStyle extends AnimatedWithChildren {
|
|
85
85
|
_originalStyleForWeb: ?unknown;
|
|
86
|
-
_nodeKeys:
|
|
87
|
-
_nodes:
|
|
86
|
+
_nodeKeys: ReadonlyArray<string>;
|
|
87
|
+
_nodes: ReadonlyArray<AnimatedNode>;
|
|
88
88
|
_style: {[string]: unknown};
|
|
89
89
|
|
|
90
90
|
/**
|
|
@@ -113,8 +113,8 @@ export default class AnimatedStyle extends AnimatedWithChildren {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
constructor(
|
|
116
|
-
nodeKeys:
|
|
117
|
-
nodes:
|
|
116
|
+
nodeKeys: ReadonlyArray<string>,
|
|
117
|
+
nodes: ReadonlyArray<AnimatedNode>,
|
|
118
118
|
style: {[string]: unknown},
|
|
119
119
|
originalStyleForWeb: ?unknown,
|
|
120
120
|
config?: ?AnimatedNodeConfig,
|
|
@@ -253,6 +253,6 @@ export default class AnimatedStyle extends AnimatedWithChildren {
|
|
|
253
253
|
// this shim when they do.
|
|
254
254
|
// $FlowFixMe[method-unbinding]
|
|
255
255
|
const _hasOwnProp = Object.prototype.hasOwnProperty;
|
|
256
|
-
const hasOwn: (obj:
|
|
256
|
+
const hasOwn: (obj: Readonly<{...}>, prop: string) => boolean =
|
|
257
257
|
// $FlowFixMe[method-unbinding]
|
|
258
258
|
Object.hasOwn ?? ((obj, prop) => _hasOwnProp.call(obj, prop));
|
|
@@ -23,12 +23,12 @@ type Transform<T = AnimatedNode> = {
|
|
|
23
23
|
| number
|
|
24
24
|
| string
|
|
25
25
|
| T
|
|
26
|
-
|
|
|
26
|
+
| ReadonlyArray<number | string | T>
|
|
27
27
|
| {[string]: number | string | T},
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
function flatAnimatedNodes(
|
|
31
|
-
transforms:
|
|
31
|
+
transforms: ReadonlyArray<Transform<>>,
|
|
32
32
|
): Array<AnimatedNode> {
|
|
33
33
|
const nodes = [];
|
|
34
34
|
for (let ii = 0, length = transforms.length; ii < length; ii++) {
|
|
@@ -47,15 +47,15 @@ function flatAnimatedNodes(
|
|
|
47
47
|
export default class AnimatedTransform extends AnimatedWithChildren {
|
|
48
48
|
// NOTE: For potentially historical reasons, some operations only operate on
|
|
49
49
|
// the first level of AnimatedNode instances. This optimizes that bevavior.
|
|
50
|
-
_nodes:
|
|
50
|
+
_nodes: ReadonlyArray<AnimatedNode>;
|
|
51
51
|
|
|
52
|
-
_transforms:
|
|
52
|
+
_transforms: ReadonlyArray<Transform<>>;
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* Creates an `AnimatedTransform` if `transforms` contains `AnimatedNode`
|
|
56
56
|
* instances. Otherwise, returns `null`.
|
|
57
57
|
*/
|
|
58
|
-
static from(transforms:
|
|
58
|
+
static from(transforms: ReadonlyArray<Transform<>>): ?AnimatedTransform {
|
|
59
59
|
const nodes = flatAnimatedNodes(
|
|
60
60
|
// NOTE: This check should not be necessary, but the types are not
|
|
61
61
|
// enforced as of this writing. This check should be hoisted to
|
|
@@ -69,8 +69,8 @@ export default class AnimatedTransform extends AnimatedWithChildren {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
constructor(
|
|
72
|
-
nodes:
|
|
73
|
-
transforms:
|
|
72
|
+
nodes: ReadonlyArray<AnimatedNode>,
|
|
73
|
+
transforms: ReadonlyArray<Transform<>>,
|
|
74
74
|
config?: ?AnimatedNodeConfig,
|
|
75
75
|
) {
|
|
76
76
|
super(config);
|
|
@@ -87,15 +87,15 @@ export default class AnimatedTransform extends AnimatedWithChildren {
|
|
|
87
87
|
super.__makeNative(platformConfig);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
__getValue():
|
|
90
|
+
__getValue(): ReadonlyArray<Transform<any>> {
|
|
91
91
|
return mapTransforms(this._transforms, animatedNode =>
|
|
92
92
|
animatedNode.__getValue(),
|
|
93
93
|
);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
__getValueWithStaticTransforms(
|
|
97
|
-
staticTransforms:
|
|
98
|
-
):
|
|
97
|
+
staticTransforms: ReadonlyArray<Object>,
|
|
98
|
+
): ReadonlyArray<Object> {
|
|
99
99
|
const values = [];
|
|
100
100
|
mapTransforms(this._transforms, node => {
|
|
101
101
|
values.push(node.__getValue());
|
|
@@ -105,7 +105,7 @@ export default class AnimatedTransform extends AnimatedWithChildren {
|
|
|
105
105
|
return mapTransforms(staticTransforms, () => values.shift());
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
__getAnimatedValue():
|
|
108
|
+
__getAnimatedValue(): ReadonlyArray<Transform<any>> {
|
|
109
109
|
return mapTransforms(this._transforms, animatedNode =>
|
|
110
110
|
animatedNode.__getAnimatedValue(),
|
|
111
111
|
);
|
|
@@ -169,9 +169,9 @@ export default class AnimatedTransform extends AnimatedWithChildren {
|
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
function mapTransforms<T>(
|
|
172
|
-
transforms:
|
|
172
|
+
transforms: ReadonlyArray<Transform<>>,
|
|
173
173
|
mapFunction: AnimatedNode => T,
|
|
174
|
-
):
|
|
174
|
+
): ReadonlyArray<Transform<T>> {
|
|
175
175
|
return transforms.map(transform => {
|
|
176
176
|
const result: Transform<T> = {};
|
|
177
177
|
// There should be exactly one property in `transform`.
|
|
@@ -24,7 +24,7 @@ import NativeAnimatedHelper from '../../../src/private/animated/NativeAnimatedHe
|
|
|
24
24
|
import AnimatedInterpolation from './AnimatedInterpolation';
|
|
25
25
|
import AnimatedWithChildren from './AnimatedWithChildren';
|
|
26
26
|
|
|
27
|
-
export type AnimatedValueConfig =
|
|
27
|
+
export type AnimatedValueConfig = Readonly<{
|
|
28
28
|
...AnimatedNodeConfig,
|
|
29
29
|
useNativeDriver: boolean,
|
|
30
30
|
}>;
|
|
@@ -17,7 +17,7 @@ import AnimatedValue from './AnimatedValue';
|
|
|
17
17
|
import AnimatedWithChildren from './AnimatedWithChildren';
|
|
18
18
|
import invariant from 'invariant';
|
|
19
19
|
|
|
20
|
-
export type AnimatedValueXYConfig =
|
|
20
|
+
export type AnimatedValueXYConfig = Readonly<{
|
|
21
21
|
...AnimatedNodeConfig,
|
|
22
22
|
useNativeDriver: boolean,
|
|
23
23
|
}>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type {Animated} from './Animated';
|
|
11
|
+
|
|
12
|
+
export function useAnimatedColor(
|
|
13
|
+
inputValue?: Animated.AnimatedColorInputValue,
|
|
14
|
+
config?: Animated.AnimatedConfig | null | undefined,
|
|
15
|
+
): Animated.AnimatedColor;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {AnimatedColorConfig, InputValue} from './nodes/AnimatedColor';
|
|
12
|
+
|
|
13
|
+
import Animated from './Animated';
|
|
14
|
+
import {useRef} from 'react';
|
|
15
|
+
|
|
16
|
+
export default function useAnimatedColor(
|
|
17
|
+
inputValue?: InputValue,
|
|
18
|
+
config?: ?AnimatedColorConfig,
|
|
19
|
+
): Animated.Color {
|
|
20
|
+
const ref = useRef<null | Animated.Color>(null);
|
|
21
|
+
if (ref.current == null) {
|
|
22
|
+
ref.current = new Animated.Color(inputValue, config);
|
|
23
|
+
}
|
|
24
|
+
return ref.current;
|
|
25
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type {Animated} from './Animated';
|
|
11
|
+
|
|
12
|
+
export function useAnimatedValueXY(
|
|
13
|
+
initialValue: {x: number; y: number},
|
|
14
|
+
config?: Animated.AnimatedConfig | null | undefined,
|
|
15
|
+
): Animated.ValueXY;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import Animated from './Animated';
|
|
12
|
+
import {useRef} from 'react';
|
|
13
|
+
|
|
14
|
+
export default function useAnimatedValueXY(
|
|
15
|
+
initialValue: {
|
|
16
|
+
x: number,
|
|
17
|
+
y: number,
|
|
18
|
+
},
|
|
19
|
+
config?: ?Animated.AnimatedConfig,
|
|
20
|
+
): Animated.ValueXY {
|
|
21
|
+
const ref = useRef<null | Animated.ValueXY>(null);
|
|
22
|
+
if (ref.current == null) {
|
|
23
|
+
ref.current = new Animated.ValueXY(initialValue, config);
|
|
24
|
+
}
|
|
25
|
+
return ref.current;
|
|
26
|
+
}
|
|
@@ -42,7 +42,7 @@ type AppStateEventDefinitions = {
|
|
|
42
42
|
focus: [],
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
export type AppStateEvent =
|
|
45
|
+
export type AppStateEvent = keyof AppStateEventDefinitions;
|
|
46
46
|
|
|
47
47
|
type NativeAppStateEventDefinitions = {
|
|
48
48
|
appStateDidChange: [{app_state: AppStateStatus}],
|
|
@@ -52,7 +52,7 @@ class MessageQueue {
|
|
|
52
52
|
|
|
53
53
|
_debugInfo: {[number]: [number, number], ...};
|
|
54
54
|
_remoteModuleTable: {[number]: string, ...};
|
|
55
|
-
_remoteMethodTable: {[number]:
|
|
55
|
+
_remoteMethodTable: {[number]: ReadonlyArray<string>, ...};
|
|
56
56
|
|
|
57
57
|
__spy: ?(data: SpyData) => void;
|
|
58
58
|
|
|
@@ -347,7 +347,7 @@ class MessageQueue {
|
|
|
347
347
|
createDebugLookup(
|
|
348
348
|
moduleID: number,
|
|
349
349
|
name: string,
|
|
350
|
-
methods:
|
|
350
|
+
methods: ?ReadonlyArray<string>,
|
|
351
351
|
) {
|
|
352
352
|
if (__DEV__) {
|
|
353
353
|
this._remoteModuleTable[moduleID] = name;
|
|
@@ -372,7 +372,7 @@ class MessageQueue {
|
|
|
372
372
|
} else {
|
|
373
373
|
try {
|
|
374
374
|
fn();
|
|
375
|
-
} catch (error) {
|
|
375
|
+
} catch (error: unknown) {
|
|
376
376
|
ErrorUtils.reportFatalError(error);
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -18,9 +18,9 @@ const invariant = require('invariant');
|
|
|
18
18
|
export type ModuleConfig = [
|
|
19
19
|
string /* name */,
|
|
20
20
|
?{...} /* constants */,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
?ReadonlyArray<string> /* functions */,
|
|
22
|
+
?ReadonlyArray<number> /* promise method IDs */,
|
|
23
|
+
?ReadonlyArray<number> /* sync method IDs */,
|
|
24
24
|
];
|
|
25
25
|
|
|
26
26
|
export type MethodType = 'async' | 'promise' | 'sync';
|
|
@@ -50,7 +50,7 @@ function genModule(
|
|
|
50
50
|
return {name: moduleName};
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
const module: {[string]:
|
|
53
|
+
const module: {[string]: unknown} = {};
|
|
54
54
|
methods &&
|
|
55
55
|
methods.forEach((methodName, methodID) => {
|
|
56
56
|
const isPromise =
|
|
@@ -99,7 +99,7 @@ function loadModule(name: string, moduleID: number): ?{...} {
|
|
|
99
99
|
function genMethod(moduleID: number, methodID: number, type: MethodType) {
|
|
100
100
|
let fn = null;
|
|
101
101
|
if (type === 'promise') {
|
|
102
|
-
fn = function promiseMethodWrapper(...args: Array<
|
|
102
|
+
fn = function promiseMethodWrapper(...args: Array<unknown>) {
|
|
103
103
|
// In case we reject, capture a useful stack trace here.
|
|
104
104
|
/* $FlowFixMe[class-object-subtyping] added when improving typing for
|
|
105
105
|
* this parameters */
|
|
@@ -122,7 +122,7 @@ function genMethod(moduleID: number, methodID: number, type: MethodType) {
|
|
|
122
122
|
});
|
|
123
123
|
};
|
|
124
124
|
} else {
|
|
125
|
-
fn = function nonPromiseMethodWrapper(...args: Array<
|
|
125
|
+
fn = function nonPromiseMethodWrapper(...args: Array<unknown>) {
|
|
126
126
|
const lastArg = args.length > 0 ? args[args.length - 1] : null;
|
|
127
127
|
const secondLastArg = args.length > 1 ? args[args.length - 2] : null;
|
|
128
128
|
const hasSuccessCallback = typeof lastArg === 'function';
|
|
@@ -133,9 +133,11 @@ function genMethod(moduleID: number, methodID: number, type: MethodType) {
|
|
|
133
133
|
'Cannot have a non-function arg after a function arg.',
|
|
134
134
|
);
|
|
135
135
|
// $FlowFixMe[incompatible-type]
|
|
136
|
-
const onSuccess: ?(
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
const onSuccess: ?(unknown) => void = hasSuccessCallback ? lastArg : null;
|
|
137
|
+
const onFail: ?(unknown) => void = hasErrorCallback
|
|
138
|
+
? // $FlowFixMe[incompatible-type]
|
|
139
|
+
secondLastArg
|
|
140
|
+
: null;
|
|
139
141
|
// $FlowFixMe[unsafe-addition]
|
|
140
142
|
const callbackCount = hasSuccessCallback + hasErrorCallback;
|
|
141
143
|
const newArgs = args.slice(0, args.length - callbackCount);
|
|
@@ -163,7 +165,7 @@ function genMethod(moduleID: number, methodID: number, type: MethodType) {
|
|
|
163
165
|
return fn;
|
|
164
166
|
}
|
|
165
167
|
|
|
166
|
-
function arrayContains<T>(array:
|
|
168
|
+
function arrayContains<T>(array: ReadonlyArray<T>, value: T): boolean {
|
|
167
169
|
return array.indexOf(value) !== -1;
|
|
168
170
|
}
|
|
169
171
|
|
|
@@ -42,33 +42,35 @@ type AccessibilityEventDefinitions = {
|
|
|
42
42
|
screenReaderChanged: [boolean],
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
type AccessibilityEventTypes =
|
|
45
|
+
type AccessibilityEventTypes =
|
|
46
|
+
| 'click'
|
|
47
|
+
| 'focus'
|
|
48
|
+
| 'viewHoverEnter'
|
|
49
|
+
| 'windowStateChange';
|
|
46
50
|
|
|
47
51
|
// Mapping of public event names to platform-specific event names.
|
|
48
|
-
const EventNames: Map<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
['darkerSystemColorsChanged', 'darkerSystemColorsChanged'],
|
|
71
|
-
]);
|
|
52
|
+
const EventNames: Map<keyof AccessibilityEventDefinitions, string> =
|
|
53
|
+
Platform.OS === 'android'
|
|
54
|
+
? new Map([
|
|
55
|
+
['change', 'touchExplorationDidChange'],
|
|
56
|
+
['reduceMotionChanged', 'reduceMotionDidChange'],
|
|
57
|
+
['highTextContrastChanged', 'highTextContrastDidChange'],
|
|
58
|
+
['screenReaderChanged', 'touchExplorationDidChange'],
|
|
59
|
+
['accessibilityServiceChanged', 'accessibilityServiceDidChange'],
|
|
60
|
+
['invertColorsChanged', 'invertColorDidChange'],
|
|
61
|
+
['grayscaleChanged', 'grayscaleModeDidChange'],
|
|
62
|
+
])
|
|
63
|
+
: new Map([
|
|
64
|
+
['announcementFinished', 'announcementFinished'],
|
|
65
|
+
['boldTextChanged', 'boldTextChanged'],
|
|
66
|
+
['change', 'screenReaderChanged'],
|
|
67
|
+
['grayscaleChanged', 'grayscaleChanged'],
|
|
68
|
+
['invertColorsChanged', 'invertColorsChanged'],
|
|
69
|
+
['reduceMotionChanged', 'reduceMotionChanged'],
|
|
70
|
+
['reduceTransparencyChanged', 'reduceTransparencyChanged'],
|
|
71
|
+
['screenReaderChanged', 'screenReaderChanged'],
|
|
72
|
+
['darkerSystemColorsChanged', 'darkerSystemColorsChanged'],
|
|
73
|
+
]);
|
|
72
74
|
|
|
73
75
|
/**
|
|
74
76
|
* Sometimes it's useful to know whether or not the device has a screen reader
|
|
@@ -422,7 +424,7 @@ const AccessibilityInfo = {
|
|
|
422
424
|
*
|
|
423
425
|
* See https://reactnative.dev/docs/accessibilityinfo#addeventlistener
|
|
424
426
|
*/
|
|
425
|
-
addEventListener<K:
|
|
427
|
+
addEventListener<K: keyof AccessibilityEventDefinitions>(
|
|
426
428
|
eventName: K,
|
|
427
429
|
// $FlowFixMe[incompatible-type] - Flow bug with unions and generics (T128099423)
|
|
428
430
|
handler: (...AccessibilityEventDefinitions[K]) => void,
|
|
@@ -438,6 +440,8 @@ const AccessibilityInfo = {
|
|
|
438
440
|
* Set accessibility focus to a React component.
|
|
439
441
|
*
|
|
440
442
|
* See https://reactnative.dev/docs/accessibilityinfo#setaccessibilityfocus
|
|
443
|
+
*
|
|
444
|
+
* @deprecated Use `sendAccessibilityEvent` with eventType `focus` instead.
|
|
441
445
|
*/
|
|
442
446
|
setAccessibilityFocus(reactTag: number): void {
|
|
443
447
|
legacySendAccessibilityEvent(reactTag, 'focus');
|