@office-iss/react-native-win32 0.73.1 → 0.74.0-preview.1
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 -1
- package/.flowconfig +11 -3
- package/CHANGELOG.json +422 -44
- package/CHANGELOG.md +162 -26
- package/IntegrationTests/AccessibilityManagerTest.js +2 -2
- package/IntegrationTests/AppEventsTest.js +2 -2
- package/IntegrationTests/LayoutEventsTest.js +8 -10
- package/IntegrationTests/LoggingTestModule.js +1 -2
- package/IntegrationTests/websocket_integration_test_server.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
- package/Libraries/Alert/NativeAlertManager.js +4 -26
- package/Libraries/Animated/Animated.js +2 -2
- package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
- package/Libraries/Animated/NativeAnimatedHelper.win32.js +14 -11
- package/Libraries/Animated/NativeAnimatedModule.js +4 -68
- package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
- package/Libraries/Animated/animations/Animation.js +6 -22
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
- package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
- package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
- package/Libraries/Animated/createAnimatedComponent.js +45 -40
- package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +21 -1
- package/Libraries/AppState/NativeAppState.js +4 -24
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/Blob.js +1 -4
- package/Libraries/Blob/BlobManager.js +6 -8
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/NativeBlobModule.js +4 -50
- package/Libraries/Blob/NativeFileReaderModule.js +4 -13
- package/Libraries/BugReporting/NativeBugReporting.js +4 -12
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +48 -7
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +3 -2
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
- package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
- package/Libraries/Components/Button/ButtonWin32.Props.js +2 -2
- package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
- package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
- package/Libraries/Components/Button/ButtonWin32.js +82 -82
- package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
- package/Libraries/Components/Button.js +103 -107
- package/Libraries/Components/Button.win32.js +297 -301
- package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
- package/Libraries/Components/EnterString.win32.d.ts +12 -12
- package/Libraries/Components/EnterString.win32.js +81 -81
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
- package/Libraries/Components/ScrollView/ScrollView.js +12 -38
- package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
- package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
- package/Libraries/Components/Switch/Switch.js +0 -2
- package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
- package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
- package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
- package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
- package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
- package/Libraries/Components/TextInput/TextInput.js +65 -32
- package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -3
- package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
- package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
- package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
- package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
- package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
- package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
- package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
- package/Libraries/Components/View/View.js +0 -11
- package/Libraries/Components/View/View.win32.js +18 -17
- package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
- package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
- package/Libraries/Components/View/ViewPropTypes.js +36 -36
- package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
- package/Libraries/Core/InitializeCore.js +1 -1
- package/Libraries/Core/NativeExceptionsManager.js +3 -93
- package/Libraries/Core/ReactNativeVersion.js +12 -6
- package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
- package/Libraries/Core/Timers/NativeTiming.js +3 -16
- package/Libraries/Core/registerCallableModule.js +42 -0
- package/Libraries/Core/setUpPerformance.js +2 -2
- package/Libraries/Core/setUpPerformanceObserver.js +3 -1
- package/Libraries/Debugging/DebuggingOverlay.js +111 -0
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
- package/Libraries/Image/AssetSourceResolver.js +5 -5
- package/Libraries/Image/AssetUtils.js +4 -5
- package/Libraries/Image/Image.android.js +146 -174
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +53 -79
- package/Libraries/Image/Image.win32.js +52 -74
- package/Libraries/Image/ImageBackground.js +2 -2
- package/Libraries/Image/ImageInjection.js +76 -18
- package/Libraries/Image/ImageTypes.d.ts +25 -25
- package/Libraries/Image/ImageTypes.flow.js +71 -0
- package/Libraries/Image/ImageTypes.js +7 -7
- package/Libraries/Image/ImageTypes.js.map +1 -1
- package/Libraries/Image/ImageUtils.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +18 -0
- package/Libraries/Image/NativeImageEditor.js +3 -42
- package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
- package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
- package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
- package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
- package/Libraries/Image/NativeImageStoreIOS.js +3 -23
- package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
- package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
- package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
- package/Libraries/Image/resolveAssetSource.js +59 -26
- package/Libraries/Inspector/ElementProperties.js +26 -52
- package/Libraries/Inspector/Inspector.js +122 -186
- package/Libraries/Inspector/Inspector.win32.js +118 -185
- package/Libraries/Inspector/InspectorOverlay.js +21 -33
- package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
- package/Libraries/Inspector/InspectorPanel.js +3 -17
- package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
- package/Libraries/Interaction/FrameRateLogger.js +8 -18
- package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
- package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
- package/Libraries/Linking/NativeIntentAndroid.js +3 -20
- package/Libraries/Linking/NativeLinkingManager.js +3 -17
- package/Libraries/Lists/FillRateHelper.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -2
- package/Libraries/Lists/FlatList.js +6 -1
- package/Libraries/Lists/SectionList.d.ts +6 -1
- package/Libraries/Lists/ViewabilityHelper.js +1 -1
- package/Libraries/Lists/VirtualizeUtils.js +1 -1
- package/Libraries/Lists/VirtualizedList.js +1 -1
- package/Libraries/Lists/VirtualizedListContext.js +1 -1
- package/Libraries/Lists/VirtualizedSectionList.js +1 -1
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/Modal/Modal.js +43 -11
- package/Libraries/Modal/NativeModalManager.js +3 -11
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
- package/Libraries/MutationObserver/MutationObserver.js +1 -1
- package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
- package/Libraries/MutationObserver/MutationRecord.js +12 -10
- package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
- package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
- package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
- package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
- package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
- package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
- package/Libraries/Network/FormData.js +3 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
- package/Libraries/Network/NativeNetworkingIOS.js +4 -28
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
- package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
- package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
- package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
- package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
- package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
- package/Libraries/Pressability/Pressability.js +12 -2
- package/Libraries/Pressability/Pressability.win32.js +12 -2
- package/Libraries/Pressability/usePressability.js +7 -0
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
- package/Libraries/ReactNative/AppContainer-dev.js +192 -0
- package/Libraries/ReactNative/AppContainer-prod.js +53 -0
- package/Libraries/ReactNative/AppContainer.js +6 -149
- package/Libraries/ReactNative/AppRegistry.js +3 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
- package/Libraries/ReactNative/FabricUIManager.js +6 -0
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
- package/Libraries/ReactNative/NativeI18nManager.js +3 -18
- package/Libraries/ReactNative/NativeUIManager.js +4 -112
- package/Libraries/ReactNative/PaperUIManager.js +8 -7
- package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
- package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
- package/Libraries/ReactNative/RendererImplementation.js +11 -0
- package/Libraries/ReactNative/UIManager.d.ts +11 -34
- package/Libraries/ReactNative/UIManager.js +2 -23
- package/Libraries/ReactNative/UIManagerProperties.js +0 -2
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
- package/Libraries/ReactNative/renderApplication.js +9 -6
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
- package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
- package/Libraries/Settings/NativeSettingsManager.js +4 -16
- package/Libraries/Share/NativeShareModule.js +3 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
- package/Libraries/StyleSheet/StyleSheet.js +5 -28
- package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
- package/Libraries/StyleSheet/flattenStyle.js +2 -2
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/Text/Text.d.ts +85 -0
- package/Libraries/Text/Text.js +0 -6
- package/Libraries/Text/Text.win32.js +0 -6
- package/Libraries/Text/TextAncestor.js +2 -3
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
- package/Libraries/Types/ReactDevToolsTypes.js +58 -0
- package/Libraries/Types/UIManagerJSInterface.js +16 -0
- package/Libraries/Utilities/DebugEnvironment.js +1 -4
- package/Libraries/Utilities/Dimensions.js +8 -16
- package/Libraries/Utilities/Dimensions.win32.js +8 -16
- package/Libraries/Utilities/FocusManager.win32.js +2 -0
- package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
- package/Libraries/Utilities/NativeAppearance.js +3 -26
- package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
- package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
- package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
- package/Libraries/Utilities/PixelRatio.d.ts +4 -4
- package/Libraries/Utilities/Platform.android.js +4 -0
- package/Libraries/Utilities/Platform.d.ts +3 -0
- package/Libraries/Utilities/Platform.flow.js +7 -0
- package/Libraries/Utilities/Platform.flow.win32.js +18 -5
- package/Libraries/Utilities/Platform.ios.js +11 -0
- package/Libraries/Utilities/Platform.win32.js +9 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeComponent.js +4 -6
- package/Libraries/Utilities/createPerformanceLogger.js +2 -74
- package/Libraries/Utilities/useMergeRefs.js +5 -9
- package/Libraries/Vibration/NativeVibration.js +3 -14
- package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/platform-types.d.ts +2 -3
- package/Libraries/vendor/emitter/EventEmitter.js +1 -0
- package/babel.config.js +1 -1
- package/flow/jest.js +1 -1
- package/flow/react.js +15 -0
- package/index.js +66 -99
- package/index.win32.js +60 -101
- package/jest/assetFileTransformer.js +1 -1
- package/jest/local-setup.js +0 -5
- package/jest/mockModal.js +2 -1
- package/jest/mockScrollView.js +1 -2
- package/jest/renderer.js +1 -1
- package/jest/setup.js +6 -3
- package/jest.config.js +2 -1
- package/overrides.json +157 -130
- package/package.json +26 -26
- package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
- package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
- package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
- package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
- package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
- package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
- package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
- package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
- package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
- package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
- package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
- package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
- package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
- package/src/private/specs/components/SwitchNativeComponent.js +61 -0
- package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
- package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
- package/src/private/specs/modules/NativeAlertManager.js +35 -0
- package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
- package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
- package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
- package/src/private/specs/modules/NativeAppState.js +33 -0
- package/src/private/specs/modules/NativeAppearance.js +36 -0
- package/src/private/specs/modules/NativeBlobModule.js +59 -0
- package/src/private/specs/modules/NativeBugReporting.js +20 -0
- package/src/private/specs/modules/NativeClipboard.js +21 -0
- package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
- package/src/private/specs/modules/NativeDevMenu.js +23 -0
- package/src/private/specs/modules/NativeDevSettings.js +33 -0
- package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
- package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
- package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
- package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
- package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
- package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
- package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
- package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
- package/src/private/specs/modules/NativeI18nManager.js +28 -0
- package/src/private/specs/modules/NativeImageEditor.js +52 -0
- package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
- package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
- package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
- package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
- package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
- package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
- package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
- package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
- package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
- package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
- package/src/private/specs/modules/NativeLinkingManager.js +27 -0
- package/src/private/specs/modules/NativeLogBox.js +20 -0
- package/src/private/specs/modules/NativeModalManager.js +21 -0
- package/src/private/specs/modules/NativeMutationObserver.js +58 -0
- package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
- package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
- package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
- package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
- package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
- package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
- package/src/private/specs/modules/NativeRedBox.js +20 -0
- package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
- package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
- package/src/private/specs/modules/NativeSettingsManager.js +25 -0
- package/src/private/specs/modules/NativeShareModule.js +23 -0
- package/src/private/specs/modules/NativeSoundManager.js +22 -0
- package/src/private/specs/modules/NativeSourceCode.js +36 -0
- package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
- package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
- package/src/private/specs/modules/NativeTiming.js +26 -0
- package/src/private/specs/modules/NativeToastAndroid.js +38 -0
- package/src/private/specs/modules/NativeUIManager.js +118 -0
- package/src/private/specs/modules/NativeVibration.js +24 -0
- package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
- package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
- package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
- package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
- package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
- package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
- package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
- package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
- package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
- package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
- package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
- package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
- package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
- package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
- package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
- package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
- package/src-win/Libraries/Text/Text.d.ts +304 -0
- package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
- package/types/modules/globals.d.ts +1 -0
- package/Libraries/Components/Button.flow.js +0 -265
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
- package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
- package/Libraries/Components/Text/TextWin32.Props.js +0 -3
- package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
- package/Libraries/Components/Text/TextWin32.d.ts +0 -6
- package/Libraries/Components/Text/TextWin32.js +0 -18
- package/Libraries/Components/Text/TextWin32.js.map +0 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
- package/Libraries/Image/Image.flow.js +0 -64
- package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
- package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
- package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
- package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
- /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
- /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
- /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
- /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
- /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
- /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
- /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
- /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
- /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
|
@@ -4,75 +4,10 @@
|
|
|
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
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import shouldUseTurboAnimatedModule from './shouldUseTurboAnimatedModule';
|
|
15
|
-
|
|
16
|
-
type EndResult = {finished: boolean, value?: number, ...};
|
|
17
|
-
type EndCallback = (result: EndResult) => void;
|
|
18
|
-
type SaveValueCallback = (value: number) => void;
|
|
19
|
-
|
|
20
|
-
export type EventMapping = {|
|
|
21
|
-
nativeEventPath: Array<string>,
|
|
22
|
-
animatedValueTag: ?number,
|
|
23
|
-
|};
|
|
24
|
-
|
|
25
|
-
// The config has different keys depending on the type of the Node
|
|
26
|
-
// TODO(T54896888): Make these types strict
|
|
27
|
-
export type AnimatedNodeConfig = Object;
|
|
28
|
-
export type AnimatingNodeConfig = Object;
|
|
29
|
-
|
|
30
|
-
export interface Spec extends TurboModule {
|
|
31
|
-
+startOperationBatch: () => void;
|
|
32
|
-
+finishOperationBatch: () => void;
|
|
33
|
-
+createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;
|
|
34
|
-
+updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;
|
|
35
|
-
+getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;
|
|
36
|
-
+startListeningToAnimatedNodeValue: (tag: number) => void;
|
|
37
|
-
+stopListeningToAnimatedNodeValue: (tag: number) => void;
|
|
38
|
-
+connectAnimatedNodes: (parentTag: number, childTag: number) => void;
|
|
39
|
-
+disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;
|
|
40
|
-
+startAnimatingNode: (
|
|
41
|
-
animationId: number,
|
|
42
|
-
nodeTag: number,
|
|
43
|
-
config: AnimatingNodeConfig,
|
|
44
|
-
endCallback: EndCallback,
|
|
45
|
-
) => void;
|
|
46
|
-
+stopAnimation: (animationId: number) => void;
|
|
47
|
-
+setAnimatedNodeValue: (nodeTag: number, value: number) => void;
|
|
48
|
-
+setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;
|
|
49
|
-
+flattenAnimatedNodeOffset: (nodeTag: number) => void;
|
|
50
|
-
+extractAnimatedNodeOffset: (nodeTag: number) => void;
|
|
51
|
-
+connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;
|
|
52
|
-
+disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;
|
|
53
|
-
+restoreDefaultValues: (nodeTag: number) => void;
|
|
54
|
-
+dropAnimatedNode: (tag: number) => void;
|
|
55
|
-
+addAnimatedEventToView: (
|
|
56
|
-
viewTag: number,
|
|
57
|
-
eventName: string,
|
|
58
|
-
eventMapping: EventMapping,
|
|
59
|
-
) => void;
|
|
60
|
-
+removeAnimatedEventFromView: (
|
|
61
|
-
viewTag: number,
|
|
62
|
-
eventName: string,
|
|
63
|
-
animatedNodeTag: number,
|
|
64
|
-
) => void;
|
|
65
|
-
|
|
66
|
-
// Events
|
|
67
|
-
+addListener: (eventName: string) => void;
|
|
68
|
-
+removeListeners: (count: number) => void;
|
|
69
|
-
|
|
70
|
-
// All of the above in a batched mode
|
|
71
|
-
+queueAndExecuteBatchedOperations?: (operationsAndArgs: Array<any>) => void;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const NativeModule: ?Spec = shouldUseTurboAnimatedModule()
|
|
75
|
-
? TurboModuleRegistry.get<Spec>('NativeAnimatedTurboModule')
|
|
76
|
-
: null;
|
|
77
|
-
|
|
78
|
-
export default NativeModule;
|
|
11
|
+
export * from '../../src/private/specs/modules/NativeAnimatedTurboModule';
|
|
12
|
+
import NativeAnimatedTurboModule from '../../src/private/specs/modules/NativeAnimatedTurboModule';
|
|
13
|
+
export default NativeAnimatedTurboModule;
|
|
@@ -14,11 +14,8 @@ import type {PlatformConfig} from '../AnimatedPlatformConfig';
|
|
|
14
14
|
import type AnimatedNode from '../nodes/AnimatedNode';
|
|
15
15
|
import type AnimatedValue from '../nodes/AnimatedValue';
|
|
16
16
|
|
|
17
|
-
import Platform from '../../Utilities/Platform';
|
|
18
17
|
import NativeAnimatedHelper from '../NativeAnimatedHelper';
|
|
19
|
-
import AnimatedColor from '../nodes/AnimatedColor';
|
|
20
18
|
import AnimatedProps from '../nodes/AnimatedProps';
|
|
21
|
-
import AnimatedValueXY from '../nodes/AnimatedValueXY';
|
|
22
19
|
|
|
23
20
|
export type EndResult = {finished: boolean, value?: number, ...};
|
|
24
21
|
export type EndCallback = (result: EndResult) => void;
|
|
@@ -39,10 +36,11 @@ let startNativeAnimationNextId = 1;
|
|
|
39
36
|
export default class Animation {
|
|
40
37
|
__active: boolean;
|
|
41
38
|
__isInteraction: boolean;
|
|
42
|
-
__nativeId: number;
|
|
43
39
|
__onEnd: ?EndCallback;
|
|
44
40
|
__iterations: number;
|
|
45
41
|
|
|
42
|
+
_nativeId: number;
|
|
43
|
+
|
|
46
44
|
start(
|
|
47
45
|
fromValue: number,
|
|
48
46
|
onUpdate: (value: number) => void,
|
|
@@ -52,8 +50,8 @@ export default class Animation {
|
|
|
52
50
|
): void {}
|
|
53
51
|
|
|
54
52
|
stop(): void {
|
|
55
|
-
if (this.
|
|
56
|
-
NativeAnimatedHelper.API.stopAnimation(this.
|
|
53
|
+
if (this._nativeId) {
|
|
54
|
+
NativeAnimatedHelper.API.stopAnimation(this._nativeId);
|
|
57
55
|
}
|
|
58
56
|
}
|
|
59
57
|
|
|
@@ -78,20 +76,6 @@ export default class Animation {
|
|
|
78
76
|
return result;
|
|
79
77
|
}
|
|
80
78
|
|
|
81
|
-
// Vectorized animations (animations on AnimatedValueXY, AnimatedColor nodes)
|
|
82
|
-
// are split into multiple animations for each component that execute in parallel.
|
|
83
|
-
// Calling update() on AnimatedProps when each animation completes results in
|
|
84
|
-
// potential flickering as all animations that are part of the vectorized animation
|
|
85
|
-
// may not have completed yet. For example, only the animation for the red channel of
|
|
86
|
-
// an animating color may have been completed, resulting in a temporary red color
|
|
87
|
-
// being rendered. So, for now, ignore AnimatedProps that use a vectorized animation.
|
|
88
|
-
if (
|
|
89
|
-
Platform.OS === 'ios' &&
|
|
90
|
-
(node instanceof AnimatedValueXY || node instanceof AnimatedColor)
|
|
91
|
-
) {
|
|
92
|
-
return result;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
79
|
for (const child of node.__getChildren()) {
|
|
96
80
|
result.push(...this.__findAnimatedPropsNodes(child));
|
|
97
81
|
}
|
|
@@ -108,9 +92,9 @@ export default class Animation {
|
|
|
108
92
|
try {
|
|
109
93
|
const config = this.__getNativeAnimationConfig();
|
|
110
94
|
animatedValue.__makeNative(config.platformConfig);
|
|
111
|
-
this.
|
|
95
|
+
this._nativeId = NativeAnimatedHelper.generateNewAnimationId();
|
|
112
96
|
NativeAnimatedHelper.API.startAnimatingNode(
|
|
113
|
-
this.
|
|
97
|
+
this._nativeId,
|
|
114
98
|
animatedValue.__getNativeTag(),
|
|
115
99
|
config,
|
|
116
100
|
result => {
|
|
@@ -14,22 +14,7 @@ import FlatList from '../../Lists/FlatList';
|
|
|
14
14
|
import createAnimatedComponent from '../createAnimatedComponent';
|
|
15
15
|
import * as React from 'react';
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
* @see https://github.com/facebook/react-native/commit/b8c8562
|
|
19
|
-
*/
|
|
20
|
-
const FlatListWithEventThrottle = React.forwardRef(
|
|
21
|
-
// $FlowFixMe[incompatible-call]
|
|
22
|
-
(
|
|
23
|
-
props: React.ElementConfig<typeof FlatList>,
|
|
24
|
-
ref:
|
|
25
|
-
| ((null | FlatList<mixed>) => mixed)
|
|
26
|
-
| {current: null | FlatList<mixed>, ...},
|
|
27
|
-
) => <FlatList {...props} ref={ref} />,
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
export default (createAnimatedComponent(
|
|
31
|
-
FlatListWithEventThrottle,
|
|
32
|
-
): AnimatedComponentType<
|
|
17
|
+
export default (createAnimatedComponent(FlatList): AnimatedComponentType<
|
|
33
18
|
React.ElementConfig<typeof FlatList>,
|
|
34
19
|
React.ElementRef<typeof FlatList>,
|
|
35
20
|
>);
|
|
@@ -30,39 +30,44 @@ type Instance = React.ElementRef<typeof ScrollView>;
|
|
|
30
30
|
* @see https://github.com/facebook/react-native/commit/b8c8562
|
|
31
31
|
*/
|
|
32
32
|
const AnimatedScrollView: AnimatedComponentType<Props, Instance> =
|
|
33
|
-
React.forwardRef(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
// swaps the parent/child relationship of itself and the
|
|
38
|
-
// RefreshControl component (see ScrollView.js for more details).
|
|
39
|
-
if (
|
|
40
|
-
Platform.OS === 'android' &&
|
|
41
|
-
props.refreshControl != null &&
|
|
42
|
-
props.style != null
|
|
33
|
+
React.forwardRef(
|
|
34
|
+
function AnimatedScrollViewWithOrWithoutInvertedRefreshControl(
|
|
35
|
+
props,
|
|
36
|
+
forwardedRef,
|
|
43
37
|
) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
38
|
+
// (Android only) When a ScrollView has a RefreshControl and
|
|
39
|
+
// any `style` property set with an Animated.Value, the CSS
|
|
40
|
+
// gets incorrectly applied twice. This is because ScrollView
|
|
41
|
+
// swaps the parent/child relationship of itself and the
|
|
42
|
+
// RefreshControl component (see ScrollView.js for more details).
|
|
43
|
+
if (
|
|
44
|
+
Platform.OS === 'android' &&
|
|
45
|
+
props.refreshControl != null &&
|
|
46
|
+
props.style != null
|
|
47
|
+
) {
|
|
48
|
+
return (
|
|
49
|
+
<AnimatedScrollViewWithInvertedRefreshControl
|
|
50
|
+
scrollEventThrottle={0.0001}
|
|
51
|
+
{...props}
|
|
52
|
+
ref={forwardedRef}
|
|
53
|
+
refreshControl={props.refreshControl}
|
|
54
|
+
/>
|
|
55
|
+
);
|
|
56
|
+
} else {
|
|
57
|
+
return (
|
|
58
|
+
<AnimatedScrollViewWithoutInvertedRefreshControl
|
|
59
|
+
scrollEventThrottle={0.0001}
|
|
60
|
+
{...props}
|
|
61
|
+
ref={forwardedRef}
|
|
62
|
+
/>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
);
|
|
62
67
|
|
|
63
68
|
const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
|
|
64
69
|
// $FlowFixMe[incompatible-call]
|
|
65
|
-
(
|
|
70
|
+
function AnimatedScrollViewWithInvertedRefreshControl(
|
|
66
71
|
props: {
|
|
67
72
|
...React.ElementConfig<typeof ScrollView>,
|
|
68
73
|
// $FlowFixMe[unclear-type] Same Flow type as `refreshControl` in ScrollView
|
|
@@ -71,7 +76,7 @@ const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
|
|
|
71
76
|
forwardedRef:
|
|
72
77
|
| {current: Instance | null, ...}
|
|
73
78
|
| ((Instance | null) => mixed),
|
|
74
|
-
)
|
|
79
|
+
) {
|
|
75
80
|
// Split `props` into the animate-able props for the parent (RefreshControl)
|
|
76
81
|
// and child (ScrollView).
|
|
77
82
|
const {intermediatePropsForRefreshControl, intermediatePropsForScrollView} =
|
|
@@ -103,7 +108,7 @@ const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
|
|
|
103
108
|
Props,
|
|
104
109
|
Instance,
|
|
105
110
|
>(intermediatePropsForScrollView);
|
|
106
|
-
const ref = useMergeRefs<Instance
|
|
111
|
+
const ref = useMergeRefs<Instance>(scrollViewRef, forwardedRef);
|
|
107
112
|
|
|
108
113
|
return (
|
|
109
114
|
// $FlowFixMe[incompatible-use] Investigate useAnimatedProps return value
|
|
@@ -8,32 +8,13 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {SectionBase} from '../../Lists/SectionList';
|
|
12
11
|
import type {AnimatedComponentType} from '../createAnimatedComponent';
|
|
13
12
|
|
|
14
13
|
import SectionList from '../../Lists/SectionList';
|
|
15
14
|
import createAnimatedComponent from '../createAnimatedComponent';
|
|
16
15
|
import * as React from 'react';
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
* @see https://github.com/facebook/react-native/commit/b8c8562
|
|
20
|
-
*/
|
|
21
|
-
const SectionListWithEventThrottle = React.forwardRef(
|
|
22
|
-
// $FlowFixMe[incompatible-call]
|
|
23
|
-
(
|
|
24
|
-
props: React.ElementConfig<typeof SectionList>,
|
|
25
|
-
ref:
|
|
26
|
-
| ((null | SectionList<SectionBase<$FlowFixMe>>) => mixed)
|
|
27
|
-
| {
|
|
28
|
-
current: null | SectionList<SectionBase<$FlowFixMe>>,
|
|
29
|
-
...
|
|
30
|
-
},
|
|
31
|
-
) => <SectionList {...props} ref={ref} />,
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
export default (createAnimatedComponent(
|
|
35
|
-
SectionListWithEventThrottle,
|
|
36
|
-
): AnimatedComponentType<
|
|
17
|
+
export default (createAnimatedComponent(SectionList): AnimatedComponentType<
|
|
37
18
|
React.ElementConfig<typeof SectionList>,
|
|
38
19
|
React.ElementRef<typeof SectionList>,
|
|
39
20
|
>);
|
|
@@ -13,50 +13,55 @@ import useMergeRefs from '../Utilities/useMergeRefs';
|
|
|
13
13
|
import useAnimatedProps from './useAnimatedProps';
|
|
14
14
|
import * as React from 'react';
|
|
15
15
|
|
|
16
|
+
// $FlowFixMe[deprecated-type]
|
|
17
|
+
export type AnimatedProps<Props: {...}> = $ObjMap<
|
|
18
|
+
Props &
|
|
19
|
+
$ReadOnly<{
|
|
20
|
+
passthroughAnimatedPropExplicitValues?: React.ElementConfig<typeof View>,
|
|
21
|
+
}>,
|
|
22
|
+
() => any,
|
|
23
|
+
>;
|
|
24
|
+
|
|
16
25
|
export type AnimatedComponentType<
|
|
17
|
-
|
|
26
|
+
Props: {...},
|
|
18
27
|
+Instance = mixed,
|
|
19
|
-
> = React.AbstractComponent<
|
|
20
|
-
$ObjMap<
|
|
21
|
-
Props &
|
|
22
|
-
$ReadOnly<{
|
|
23
|
-
passthroughAnimatedPropExplicitValues?: React.ElementConfig<
|
|
24
|
-
typeof View,
|
|
25
|
-
>,
|
|
26
|
-
}>,
|
|
27
|
-
() => any,
|
|
28
|
-
>,
|
|
29
|
-
Instance,
|
|
30
|
-
>;
|
|
28
|
+
> = React.AbstractComponent<AnimatedProps<Props>, Instance>;
|
|
31
29
|
|
|
32
30
|
export default function createAnimatedComponent<TProps: {...}, TInstance>(
|
|
33
31
|
Component: React.AbstractComponent<TProps, TInstance>,
|
|
34
32
|
): AnimatedComponentType<TProps, TInstance> {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
33
|
+
const AnimatedComponent = React.forwardRef<AnimatedProps<TProps>, TInstance>(
|
|
34
|
+
(props, forwardedRef) => {
|
|
35
|
+
const [reducedProps, callbackRef] = useAnimatedProps<TProps, TInstance>(
|
|
36
|
+
// $FlowFixMe[incompatible-call]
|
|
37
|
+
props,
|
|
38
|
+
);
|
|
39
|
+
const ref = useMergeRefs<TInstance>(callbackRef, forwardedRef);
|
|
40
|
+
|
|
41
|
+
// Some components require explicit passthrough values for animation
|
|
42
|
+
// to work properly. For example, if an animated component is
|
|
43
|
+
// transformed and Pressable, onPress will not work after transform
|
|
44
|
+
// without these passthrough values.
|
|
45
|
+
// $FlowFixMe[prop-missing]
|
|
46
|
+
const {passthroughAnimatedPropExplicitValues, style} = reducedProps;
|
|
47
|
+
const {style: passthroughStyle, ...passthroughProps} =
|
|
48
|
+
passthroughAnimatedPropExplicitValues ?? {};
|
|
49
|
+
const mergedStyle = {...style, ...passthroughStyle};
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<Component
|
|
53
|
+
{...reducedProps}
|
|
54
|
+
{...passthroughProps}
|
|
55
|
+
style={mergedStyle}
|
|
56
|
+
ref={ref}
|
|
57
|
+
/>
|
|
58
|
+
);
|
|
59
|
+
},
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
AnimatedComponent.displayName = `Animated(${
|
|
63
|
+
Component.displayName || 'Anonymous'
|
|
64
|
+
})`;
|
|
65
|
+
|
|
66
|
+
return AnimatedComponent;
|
|
62
67
|
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
import type {PlatformConfig} from '../AnimatedPlatformConfig';
|
|
14
14
|
|
|
15
|
-
import ReactNativeFeatureFlags from '
|
|
15
|
+
import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
16
16
|
import flattenStyle from '../../StyleSheet/flattenStyle';
|
|
17
17
|
import Platform from '../../Utilities/Platform';
|
|
18
18
|
import NativeAnimatedHelper from '../NativeAnimatedHelper';
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
13
14
|
import {isPublicInstance as isFabricPublicInstance} from '../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils';
|
|
14
|
-
import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
|
|
15
15
|
import useRefEffect from '../Utilities/useRefEffect';
|
|
16
16
|
import {AnimatedEvent} from './AnimatedEvent';
|
|
17
17
|
import NativeAnimatedHelper from './NativeAnimatedHelper';
|
|
@@ -37,6 +37,7 @@ export default function useAnimatedProps<TProps: {...}, TInstance>(
|
|
|
37
37
|
): [ReducedProps<TProps>, CallbackRef<TInstance | null>] {
|
|
38
38
|
const [, scheduleUpdate] = useReducer<number, void>(count => count + 1, 0);
|
|
39
39
|
const onUpdateRef = useRef<?() => void>(null);
|
|
40
|
+
const timerRef = useRef<TimeoutID | null>(null);
|
|
40
41
|
|
|
41
42
|
// TODO: Only invalidate `node` if animated props or `style` change. In the
|
|
42
43
|
// previous implementation, we permitted `style` to override props with the
|
|
@@ -87,6 +88,25 @@ export default function useAnimatedProps<TProps: {...}, TInstance>(
|
|
|
87
88
|
// $FlowIgnore[not-a-function] - Assume it's still a function.
|
|
88
89
|
// $FlowFixMe[incompatible-use]
|
|
89
90
|
instance.setNativeProps(node.__getAnimatedValue());
|
|
91
|
+
if (isFabricInstance(instance)) {
|
|
92
|
+
// Keeping state of Fiber tree and Shadow tree in sync.
|
|
93
|
+
//
|
|
94
|
+
// This is done by calling `scheduleUpdate` which will trigger a commit.
|
|
95
|
+
// However, React commit is not fast enough to drive animations.
|
|
96
|
+
// This is where setNativeProps comes in handy but the state between
|
|
97
|
+
// Fiber tree and Shadow tree needs to be kept in sync.
|
|
98
|
+
// The goal is to call `scheduleUpdate` as little as possible to maintain
|
|
99
|
+
// performance but frequently enough to keep state in sync.
|
|
100
|
+
// Debounce is set to 48ms, which is 3 * the duration of a frame.
|
|
101
|
+
// 3 frames was the highest value where flickering state was not observed.
|
|
102
|
+
if (timerRef.current != null) {
|
|
103
|
+
clearTimeout(timerRef.current);
|
|
104
|
+
}
|
|
105
|
+
timerRef.current = setTimeout(() => {
|
|
106
|
+
timerRef.current = null;
|
|
107
|
+
scheduleUpdate();
|
|
108
|
+
}, 48);
|
|
109
|
+
}
|
|
90
110
|
}
|
|
91
111
|
};
|
|
92
112
|
|
|
@@ -4,30 +4,10 @@
|
|
|
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
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export type AppStateConstants = {|
|
|
16
|
-
initialAppState: string,
|
|
17
|
-
|};
|
|
18
|
-
|
|
19
|
-
export type AppState = {|app_state: string|};
|
|
20
|
-
|
|
21
|
-
export interface Spec extends TurboModule {
|
|
22
|
-
+getConstants: () => AppStateConstants;
|
|
23
|
-
+getCurrentAppState: (
|
|
24
|
-
success: (appState: AppState) => void,
|
|
25
|
-
error: (error: Object) => void,
|
|
26
|
-
) => void;
|
|
27
|
-
|
|
28
|
-
// Events
|
|
29
|
-
+addListener: (eventName: string) => void;
|
|
30
|
-
+removeListeners: (count: number) => void;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export default (TurboModuleRegistry.getEnforcing<Spec>('AppState'): Spec);
|
|
11
|
+
export * from '../../src/private/specs/modules/NativeAppState';
|
|
12
|
+
import NativeAppState from '../../src/private/specs/modules/NativeAppState';
|
|
13
|
+
export default NativeAppState;
|
|
@@ -177,7 +177,7 @@ function updateErrorWithErrorData(
|
|
|
177
177
|
let NativeModules: {[moduleName: string]: $FlowFixMe, ...} = {};
|
|
178
178
|
if (global.nativeModuleProxy) {
|
|
179
179
|
NativeModules = global.nativeModuleProxy;
|
|
180
|
-
} else
|
|
180
|
+
} else {
|
|
181
181
|
const bridgeConfig = global.__fbBatchedBridgeConfig;
|
|
182
182
|
invariant(
|
|
183
183
|
bridgeConfig,
|
package/Libraries/Blob/Blob.js
CHANGED
|
@@ -57,10 +57,7 @@ class Blob {
|
|
|
57
57
|
* Currently we only support creating Blobs from other Blobs.
|
|
58
58
|
* Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
|
|
59
59
|
*/
|
|
60
|
-
constructor(
|
|
61
|
-
parts: Array<$ArrayBufferView | ArrayBuffer | Blob | string> = [],
|
|
62
|
-
options?: BlobOptions,
|
|
63
|
-
) {
|
|
60
|
+
constructor(parts: Array<Blob | string> = [], options?: BlobOptions) {
|
|
64
61
|
const BlobManager = require('./BlobManager');
|
|
65
62
|
this.data = BlobManager.createFromParts(parts, options).data;
|
|
66
63
|
}
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
import type {BlobCollector, BlobData, BlobOptions} from './BlobTypes';
|
|
12
12
|
|
|
13
13
|
import NativeBlobModule from './NativeBlobModule';
|
|
14
|
-
import {fromByteArray} from 'base64-js';
|
|
15
14
|
import invariant from 'invariant';
|
|
16
15
|
|
|
17
16
|
const Blob = require('./Blob');
|
|
@@ -60,7 +59,7 @@ class BlobManager {
|
|
|
60
59
|
* Create blob from existing array of blobs.
|
|
61
60
|
*/
|
|
62
61
|
static createFromParts(
|
|
63
|
-
parts: Array
|
|
62
|
+
parts: Array<Blob | string>,
|
|
64
63
|
options?: BlobOptions,
|
|
65
64
|
): Blob {
|
|
66
65
|
invariant(NativeBlobModule, 'NativeBlobModule is available.');
|
|
@@ -68,12 +67,11 @@ class BlobManager {
|
|
|
68
67
|
const blobId = uuidv4();
|
|
69
68
|
const items = parts.map(part => {
|
|
70
69
|
if (part instanceof ArrayBuffer || ArrayBuffer.isView(part)) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
} else if (part instanceof Blob) {
|
|
70
|
+
throw new Error(
|
|
71
|
+
"Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported",
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
if (part instanceof Blob) {
|
|
77
75
|
return {
|
|
78
76
|
data: part.data,
|
|
79
77
|
type: 'blob',
|
package/Libraries/Blob/File.js
CHANGED
|
@@ -4,56 +4,10 @@
|
|
|
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
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export interface Spec extends TurboModule {
|
|
16
|
-
+getConstants: () => {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|};
|
|
17
|
-
+addNetworkingHandler: () => void;
|
|
18
|
-
+addWebSocketHandler: (id: number) => void;
|
|
19
|
-
+removeWebSocketHandler: (id: number) => void;
|
|
20
|
-
+sendOverSocket: (blob: Object, socketID: number) => void;
|
|
21
|
-
+createFromParts: (parts: Array<Object>, withId: string) => void;
|
|
22
|
-
+release: (blobId: string) => void;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const NativeModule = TurboModuleRegistry.get<Spec>('BlobModule');
|
|
26
|
-
|
|
27
|
-
let constants = null;
|
|
28
|
-
let NativeBlobModule = null;
|
|
29
|
-
|
|
30
|
-
if (NativeModule != null) {
|
|
31
|
-
NativeBlobModule = {
|
|
32
|
-
getConstants(): {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|} {
|
|
33
|
-
if (constants == null) {
|
|
34
|
-
constants = NativeModule.getConstants();
|
|
35
|
-
}
|
|
36
|
-
return constants;
|
|
37
|
-
},
|
|
38
|
-
addNetworkingHandler(): void {
|
|
39
|
-
NativeModule.addNetworkingHandler();
|
|
40
|
-
},
|
|
41
|
-
addWebSocketHandler(id: number): void {
|
|
42
|
-
NativeModule.addWebSocketHandler(id);
|
|
43
|
-
},
|
|
44
|
-
removeWebSocketHandler(id: number): void {
|
|
45
|
-
NativeModule.removeWebSocketHandler(id);
|
|
46
|
-
},
|
|
47
|
-
sendOverSocket(blob: Object, socketID: number): void {
|
|
48
|
-
NativeModule.sendOverSocket(blob, socketID);
|
|
49
|
-
},
|
|
50
|
-
createFromParts(parts: Array<Object>, withId: string): void {
|
|
51
|
-
NativeModule.createFromParts(parts, withId);
|
|
52
|
-
},
|
|
53
|
-
release(blobId: string): void {
|
|
54
|
-
NativeModule.release(blobId);
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export default (NativeBlobModule: ?Spec);
|
|
11
|
+
export * from '../../src/private/specs/modules/NativeBlobModule';
|
|
12
|
+
import NativeBlobModule from '../../src/private/specs/modules/NativeBlobModule';
|
|
13
|
+
export default NativeBlobModule;
|
|
@@ -4,19 +4,10 @@
|
|
|
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
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export interface Spec extends TurboModule {
|
|
16
|
-
+readAsDataURL: (data: Object) => Promise<string>;
|
|
17
|
-
+readAsText: (data: Object, encoding: string) => Promise<string>;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export default (TurboModuleRegistry.getEnforcing<Spec>(
|
|
21
|
-
'FileReaderModule',
|
|
22
|
-
): Spec);
|
|
11
|
+
export * from '../../src/private/specs/modules/NativeFileReaderModule';
|
|
12
|
+
import NativeFileReaderModule from '../../src/private/specs/modules/NativeFileReaderModule';
|
|
13
|
+
export default NativeFileReaderModule;
|