@office-iss/react-native-win32 0.78.3 → 0.79.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/.flowconfig +4 -1
- package/CHANGELOG.json +159 -46
- package/CHANGELOG.md +49 -26
- package/IntegrationTests/AccessibilityManagerTest.js +17 -12
- package/IntegrationTests/AppEventsTest.js +47 -32
- package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +10 -14
- package/IntegrationTests/ImageCachePolicyTest.js +64 -81
- package/IntegrationTests/ImageSnapshotTest.js +17 -20
- package/IntegrationTests/IntegrationTestHarnessTest.js +34 -52
- package/IntegrationTests/IntegrationTestsApp.js +11 -6
- package/IntegrationTests/LayoutEventsTest.js +17 -12
- package/IntegrationTests/LoggingTestModule.js +2 -1
- package/IntegrationTests/PromiseTest.js +51 -43
- package/IntegrationTests/SimpleSnapshotTest.js +19 -24
- package/IntegrationTests/SyncMethodTest.js +9 -13
- package/IntegrationTests/TimersTest.js +3 -3
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +39 -18
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -2
- package/Libraries/Alert/Alert.js +33 -10
- package/Libraries/Alert/Alert.win32.js +32 -9
- package/Libraries/Alert/NativeAlertManager.js +2 -2
- package/Libraries/Alert/RCTAlertManager.android.js +1 -1
- package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
- package/Libraries/Alert/RCTAlertManager.js.flow +18 -0
- package/Libraries/Animated/Animated.js +8 -37
- package/Libraries/Animated/Animated.js.flow +15 -0
- package/Libraries/Animated/AnimatedExports.js +47 -0
- package/Libraries/Animated/AnimatedExports.js.flow +48 -0
- package/Libraries/Animated/AnimatedMock.js +1 -1
- package/Libraries/Animated/NativeAnimatedModule.js +2 -2
- package/Libraries/Animated/NativeAnimatedTurboModule.js +2 -2
- package/Libraries/Animated/animations/Animation.js +1 -4
- package/Libraries/Animated/createAnimatedComponent.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +1 -0
- package/Libraries/Animated/nodes/AnimatedValue.js +30 -22
- package/Libraries/Animated/useAnimatedProps.js +4 -333
- package/Libraries/Animated/useAnimatedValue.js +1 -3
- package/Libraries/AppState/AppState.js +24 -7
- package/Libraries/AppState/NativeAppState.js +2 -2
- package/Libraries/BatchedBridge/BatchedBridge.js +4 -2
- package/Libraries/BatchedBridge/MessageQueue.js +5 -4
- package/Libraries/BatchedBridge/NativeModules.js +6 -4
- package/Libraries/Blob/Blob.js +5 -5
- package/Libraries/Blob/BlobManager.js +3 -2
- package/Libraries/Blob/BlobRegistry.js +3 -9
- package/Libraries/Blob/File.js +3 -2
- package/Libraries/Blob/FileReader.js +8 -174
- package/Libraries/Blob/FileReader_new.js +231 -0
- package/Libraries/Blob/FileReader_old.js +186 -0
- package/Libraries/Blob/NativeBlobModule.js +2 -2
- package/Libraries/Blob/NativeFileReaderModule.js +2 -2
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +9 -10
- package/Libraries/Blob/URLSearchParams.js.flow +23 -0
- package/Libraries/BugReporting/BugReporting.js +2 -2
- package/Libraries/BugReporting/NativeBugReporting.js +2 -2
- package/Libraries/BugReporting/dumpReactTree.js +2 -2
- package/Libraries/BugReporting/getReactData.js +1 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +1 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +1 -1
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +2 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +2 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +2 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +20 -0
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +11 -11
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
- package/Libraries/Components/Button.js +6 -6
- package/Libraries/Components/Button.win32.js +6 -9
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/Clipboard/NativeClipboard.js +2 -2
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +14 -100
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +64 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +138 -0
- package/Libraries/Components/Keyboard/Keyboard.js +9 -9
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +24 -25
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +2 -2
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +7 -5
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.js +28 -73
- package/Libraries/Components/Pressable/Pressable.win32.js +29 -75
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +17 -17
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +4 -47
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +13 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +54 -0
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
- package/Libraries/Components/RefreshControl/RefreshControl.js +17 -14
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +1 -1
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -4
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -4
- package/Libraries/Components/ScrollView/ScrollView.js +139 -134
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +7 -9
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +5 -2
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +10 -11
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/Sound/NativeSoundManager.js +2 -2
- package/Libraries/Components/Sound/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +4 -4
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +2 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +2 -2
- package/Libraries/Components/StatusBar/StatusBar.js +57 -31
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
- package/Libraries/Components/Switch/Switch.js +74 -45
- package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -35
- package/Libraries/Components/TextInput/InputAccessoryView.js +5 -3
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +2 -4
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +2 -4
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +5 -2
- package/Libraries/Components/TextInput/TextInput.flow.js +131 -121
- package/Libraries/Components/TextInput/TextInput.js +152 -149
- package/Libraries/Components/TextInput/TextInput.win32.js +154 -151
- package/Libraries/Components/TextInput/TextInputNativeCommands.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.js +6 -20
- package/Libraries/Components/TextInput/TextInputState.win32.js +6 -20
- package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +1 -1
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +2 -2
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +68 -6
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
- package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Position.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +23 -23
- package/Libraries/Components/Touchable/Touchable.win32.js +23 -23
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
- package/Libraries/Components/Touchable/TouchableHighlight.js +44 -23
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +102 -54
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +252 -47
- package/Libraries/Components/Touchable/TouchableOpacity.js +57 -15
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +114 -61
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +11 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +17 -3
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -1
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -1
- package/Libraries/Components/View/View.js +2 -2
- package/Libraries/Components/View/View.win32.js +2 -2
- package/Libraries/Components/View/ViewAccessibility.js +245 -5
- package/Libraries/Components/View/ViewAccessibility.win32.js +245 -5
- package/Libraries/Components/View/ViewNativeComponent.js +2 -4
- package/Libraries/Components/View/ViewPropTypes.d.ts +14 -14
- package/Libraries/Components/View/ViewPropTypes.js +65 -253
- package/Libraries/Components/View/ViewPropTypes.win32.js +123 -312
- package/Libraries/Core/Devtools/getDevServer.js +1 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.js +4 -2
- package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +4 -2
- package/Libraries/Core/Devtools/openFileInEditor.js +2 -4
- package/Libraries/Core/Devtools/openURLInBrowser.js +5 -4
- package/Libraries/Core/Devtools/parseErrorStack.js +4 -4
- package/Libraries/Core/Devtools/parseHermesStack.js +2 -2
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +6 -5
- package/Libraries/Core/ExceptionsManager.js +6 -4
- package/Libraries/Core/InitializeCore.js +7 -3
- package/Libraries/Core/NativeExceptionsManager.js +2 -2
- package/Libraries/Core/RawEventEmitter.js +2 -2
- package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
- package/Libraries/Core/ReactNativeVersion.js +3 -5
- package/Libraries/Core/ReactNativeVersionCheck.js +2 -4
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +2 -4
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +10 -8
- package/Libraries/Core/Timers/NativeTiming.js +2 -2
- package/Libraries/Core/Timers/immediateShim.js +2 -9
- package/Libraries/Core/polyfillPromise.js +1 -1
- package/Libraries/Core/registerCallableModule.js +1 -1
- package/Libraries/Core/setUpAlert.js +1 -1
- package/Libraries/Core/setUpBatchedBridge.js +13 -8
- package/Libraries/Core/setUpDeveloperTools.js +3 -35
- package/Libraries/Core/setUpErrorHandling.js +2 -2
- package/Libraries/Core/setUpReactDevTools.js +26 -6
- package/Libraries/Core/setUpReactRefresh.js +1 -1
- package/Libraries/Core/setUpTimers.js +45 -66
- package/Libraries/Core/setUpXHR.js +11 -8
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +10 -7
- package/Libraries/EventEmitter/NativeEventEmitter.js +8 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +7 -5
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -2
- package/Libraries/Events/CustomEvent.js +3 -3
- package/Libraries/Events/EventPolyfill.js +2 -2
- package/Libraries/Image/AssetRegistry.js +8 -1
- package/Libraries/Image/AssetSourceResolver.js +4 -4
- package/Libraries/Image/Image.android.js +4 -2
- package/Libraries/Image/Image.ios.js +1 -1
- package/Libraries/Image/Image.js.flow +27 -0
- package/Libraries/Image/Image.win32.js +1 -1
- package/Libraries/Image/ImageBackground.js +2 -2
- package/Libraries/Image/ImageProps.js +109 -39
- package/Libraries/Image/ImageTypes.flow.js +16 -6
- package/Libraries/Image/ImageViewNativeComponent.js +8 -11
- package/Libraries/Image/NativeImageEditor.js +2 -2
- package/Libraries/Image/NativeImageLoaderAndroid.js +2 -2
- package/Libraries/Image/NativeImageLoaderIOS.js +2 -2
- package/Libraries/Image/NativeImageLoaderWin32.js +2 -2
- package/Libraries/Image/NativeImageStoreAndroid.js +2 -2
- package/Libraries/Image/NativeImageStoreIOS.js +2 -2
- package/Libraries/Image/RelativeImageStub.js +3 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +2 -4
- package/Libraries/Image/nativeImageSource.js +3 -3
- package/Libraries/Image/resolveAssetSource.js +4 -2
- package/Libraries/Image/resolveAssetSource.win32.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +20 -9
- package/Libraries/Interaction/InteractionManagerStub.js +10 -2
- package/Libraries/Interaction/JSEventLoopWatchdog.js +2 -2
- package/Libraries/Interaction/NativeFrameRateLogger.js +2 -2
- package/Libraries/Interaction/PanResponder.js +49 -46
- package/Libraries/Interaction/TaskQueue.js +4 -4
- package/Libraries/Interaction/TouchHistoryMath.js +27 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +20 -6
- package/Libraries/Linking/Linking.d.ts +3 -3
- package/Libraries/Linking/Linking.js +10 -9
- package/Libraries/Linking/NativeIntentAndroid.js +2 -2
- package/Libraries/Linking/NativeLinkingManager.js +2 -2
- package/Libraries/Lists/FillRateHelper.js +4 -4
- package/Libraries/Lists/FlatList.js +30 -30
- package/Libraries/Lists/SectionList.js +10 -10
- package/Libraries/Lists/SectionListModern.js +9 -7
- package/Libraries/Lists/ViewabilityHelper.js +4 -3
- package/Libraries/Lists/VirtualizeUtils.js +3 -5
- package/Libraries/Lists/VirtualizedList.js +6 -6
- package/Libraries/Lists/VirtualizedListContext.js +5 -5
- package/Libraries/Lists/VirtualizedSectionList.js +5 -3
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +15 -15
- package/Libraries/LogBox/Data/LogBoxLog.js +51 -29
- package/Libraries/LogBox/Data/parseLogBoxLog.js +10 -10
- package/Libraries/LogBox/LogBox.js +22 -2
- package/Libraries/LogBox/LogBoxInspectorContainer.js +3 -3
- package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -3
- package/Libraries/LogBox/UI/AnsiHighlight.js +7 -3
- package/Libraries/LogBox/UI/LogBoxButton.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspector.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorBody.js +8 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +50 -31
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +50 -31
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +11 -3
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +2 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +8 -2
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +8 -2
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +2 -0
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -4
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +5 -3
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +5 -3
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +4 -4
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -3
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -3
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -2
- package/Libraries/LogBox/UI/LogBoxNotification.js +6 -2
- package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +3 -1
- package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +2 -0
- package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +4 -1
- package/Libraries/Modal/Modal.js +82 -89
- package/Libraries/Modal/NativeModalManager.js +2 -2
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +16 -6
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -9
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +14 -0
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +19 -9
- package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +5 -1
- package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
- package/Libraries/NativeModules/specs/NativeDevSettings.js +2 -2
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +2 -2
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +2 -2
- package/Libraries/NativeModules/specs/NativeLogBox.js +2 -2
- package/Libraries/NativeModules/specs/NativeRedBox.js +2 -2
- package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -2
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +2 -2
- package/Libraries/Network/NativeNetworkingIOS.js +2 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +44 -0
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +10 -685
- package/Libraries/Network/XMLHttpRequest_new.js +794 -0
- package/Libraries/Network/XMLHttpRequest_old.js +701 -0
- package/Libraries/Network/convertRequestBody.js +7 -4
- package/Libraries/Network/fetch.js +4 -3
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -2
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +65 -63
- package/Libraries/Pressability/HoverState.js +1 -0
- package/Libraries/Pressability/HoverState.win32.js +1 -0
- package/Libraries/Pressability/Pressability.js +34 -34
- package/Libraries/Pressability/Pressability.win32.js +35 -35
- package/Libraries/Pressability/PressabilityDebug.js +2 -2
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +2 -2
- package/Libraries/Promise.js +2 -2
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +2 -2
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +119 -16
- package/Libraries/ReactNative/AppContainer-dev.js +4 -3
- package/Libraries/ReactNative/AppContainer.js +3 -3
- package/Libraries/ReactNative/AppRegistry.js +4 -4
- package/Libraries/ReactNative/BridgelessUIManager.js +4 -9
- package/Libraries/ReactNative/FabricUIManager.js +22 -10
- package/Libraries/ReactNative/I18nManager.js +4 -3
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +2 -2
- package/Libraries/ReactNative/NativeI18nManager.js +2 -2
- package/Libraries/ReactNative/NativeUIManager.js +2 -2
- package/Libraries/ReactNative/PaperUIManager.js +6 -6
- package/Libraries/ReactNative/PaperUIManager.win32.js +6 -6
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +7 -5
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +85 -30
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +3 -3
- package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +3 -3
- package/Libraries/ReactNative/RendererImplementation.js +12 -5
- package/Libraries/ReactNative/RootTag.js +1 -1
- package/Libraries/ReactNative/UIManager.d.ts +1 -0
- package/Libraries/ReactNative/UIManager.js +3 -3
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +10 -9
- package/Libraries/ReactNative/requireNativeComponent.js +3 -2
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +30 -10
- package/Libraries/Renderer/shims/ReactNativeTypes.js +40 -89
- package/Libraries/Settings/NativeSettingsManager.js +2 -2
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/Settings/Settings.js +3 -3
- package/Libraries/Settings/Settings.win32.js +3 -3
- package/Libraries/Share/NativeShareModule.js +2 -2
- package/Libraries/Share/Share.js +11 -4
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +22 -0
- package/Libraries/StyleSheet/Rect.js +2 -2
- package/Libraries/StyleSheet/StyleSheet.js +4 -3
- package/Libraries/StyleSheet/StyleSheet.win32.js +5 -4
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +1 -1
- package/Libraries/StyleSheet/flattenStyle.js +1 -1
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/private/_TransformStyle.js +18 -18
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +138 -136
- package/Libraries/StyleSheet/processBoxShadow.js +4 -0
- package/Libraries/StyleSheet/processColor.js +2 -2
- package/Libraries/StyleSheet/processColorArray.js +1 -1
- package/Libraries/StyleSheet/processFilter.js +4 -0
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +1 -1
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/Text/Text.d.ts +1 -1
- package/Libraries/Text/Text.js +19 -17
- package/Libraries/Text/Text.win32.js +19 -17
- package/Libraries/Text/TextAncestor.js +2 -3
- package/Libraries/Text/TextNativeComponent.js +3 -3
- package/Libraries/Text/TextNativeComponent.win32.js +3 -3
- package/Libraries/Text/TextProps.js +134 -94
- package/Libraries/Text/TextProps.win32.js +134 -94
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +2 -2
- package/Libraries/Types/CodegenTypes.js +5 -4
- package/Libraries/Types/CoreEventTypes.js +119 -86
- package/Libraries/Types/CoreEventTypes.win32.js +131 -93
- package/Libraries/Types/ReactDevToolsTypes.js +4 -8
- package/Libraries/UTFSequence.js +4 -3
- package/Libraries/Utilities/Appearance.js +0 -8
- package/Libraries/Utilities/BackHandler.android.js +3 -3
- package/Libraries/Utilities/BackHandler.ios.js +7 -7
- package/Libraries/Utilities/BackHandler.js.flow +25 -0
- package/Libraries/Utilities/BackHandler.win32.js +3 -3
- package/Libraries/Utilities/DevLoadingView.js +1 -1
- package/Libraries/Utilities/DevSettings.js +15 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/DeviceInfo.win32.js +1 -1
- package/Libraries/Utilities/Dimensions.js +5 -0
- package/Libraries/Utilities/Dimensions.win32.js +5 -0
- package/Libraries/Utilities/FeatureDetection.js +2 -4
- package/Libraries/Utilities/FocusManager.win32.js +3 -3
- package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -1
- package/Libraries/Utilities/HMRClient.js +7 -7
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +2 -2
- package/Libraries/Utilities/NativeDevLoadingView.js +2 -2
- package/Libraries/Utilities/NativeDeviceInfo.js +2 -2
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +2 -2
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +2 -2
- package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
- package/Libraries/Utilities/Platform.android.js +6 -6
- package/Libraries/Utilities/Platform.ios.js +6 -6
- package/{flow/Position.js → Libraries/Utilities/Platform.js.flow} +3 -6
- package/Libraries/Utilities/Platform.win32.js +4 -4
- package/Libraries/Utilities/{Platform.flow.win32.js → PlatformTypes.js} +105 -14
- package/Libraries/Utilities/PolyfillFunctions.js +3 -5
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +6 -6
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +2 -2
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -2
- package/Libraries/Utilities/codegenNativeComponent.js +3 -3
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +6 -6
- package/Libraries/Utilities/differ/insetsDiffer.js +3 -3
- package/Libraries/Utilities/differ/matricesDiffer.js +3 -6
- package/Libraries/Utilities/differ/pointsDiffer.js +3 -3
- package/Libraries/Utilities/differ/sizesDiffer.js +3 -3
- package/Libraries/Utilities/dismissKeyboard.js +3 -2
- package/Libraries/Utilities/infoLog.js +1 -1
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +2 -2
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +2 -2
- package/Libraries/Vibration/Vibration.js +4 -4
- package/Libraries/WebSocket/NativeWebSocketModule.js +2 -2
- package/Libraries/WebSocket/WebSocket.js +8 -285
- package/Libraries/WebSocket/WebSocketEvent.js +2 -2
- package/Libraries/WebSocket/WebSocketInterceptor.js +39 -11
- package/Libraries/WebSocket/WebSocket_new.js +325 -0
- package/Libraries/WebSocket/WebSocket_old.js +297 -0
- package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -4
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +21 -9
- package/flow/jest.js +14 -14
- package/index.js +153 -237
- package/index.win32.js +64 -55
- package/jest/mockScrollView.js +1 -1
- package/jest/setup.js +314 -264
- package/overrides.json +64 -75
- package/package.json +24 -24
- package/src/private/animated/createAnimatedPropsHook.js +360 -0
- package/src/private/animated/{useAnimatedPropsMemo.js → createAnimatedPropsMemoHook.js} +84 -32
- package/src/private/components/HScrollViewNativeComponents.js +2 -2
- package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
- package/src/private/components/VScrollViewNativeComponents.js +1 -1
- package/src/private/debugging/ReactDevToolsSettingsManager.android.js +1 -1
- package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +1 -1
- package/src/private/devmenu/DevMenu.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +53 -75
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +5 -7
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +10 -12
- package/{Libraries/Inspector → src/private/inspector}/BorderBox.js +3 -3
- package/{Libraries/Inspector → src/private/inspector}/BoxInspector.js +9 -6
- package/{Libraries/Inspector → src/private/inspector}/ElementBox.js +9 -8
- package/{Libraries/Inspector → src/private/inspector}/ElementProperties.js +20 -15
- package/{Libraries/Inspector → src/private/inspector}/Inspector.js +21 -18
- package/{Libraries/Inspector → src/private/inspector}/InspectorOverlay.js +11 -10
- package/{Libraries/Inspector → src/private/inspector}/InspectorPanel.js +17 -15
- package/{Libraries/Inspector → src/private/inspector}/NetworkOverlay.js +43 -27
- package/{Libraries/Inspector → src/private/inspector}/PerformanceOverlay.js +8 -6
- package/{Libraries/Inspector → src/private/inspector}/ReactDevToolsOverlay.js +11 -10
- package/{Libraries/Inspector → src/private/inspector}/StyleInspector.js +6 -6
- package/{Libraries/Network → src/private/inspector}/XHRInterceptor.js +5 -2
- package/{Libraries/Inspector → src/private/inspector}/getInspectorDataForViewAtPoint.js +6 -6
- package/{Libraries/Inspector → src/private/inspector}/resolveBoxStyle.js +5 -4
- package/src/private/renderer/errorhandling/ErrorHandlers.js +5 -5
- package/src/private/setup/setUpDOM.js +43 -3
- package/src/private/{specs → specs_DEPRECATED}/components/ActivityIndicatorViewNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/components/AndroidDrawerLayoutNativeComponent.js +7 -7
- package/src/private/{specs → specs_DEPRECATED}/components/AndroidHorizontalScrollContentViewNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwipeRefreshLayoutNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwitchNativeComponent.js +5 -5
- package/src/private/{specs → specs_DEPRECATED}/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/components/ProgressBarAndroidNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/components/PullToRefreshViewNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/components/RCTInputAccessoryViewNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/components/RCTModalHostViewNativeComponent.js +5 -5
- package/src/private/{specs → specs_DEPRECATED}/components/RCTSafeAreaViewNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/components/SwitchNativeComponent.js +5 -5
- package/src/private/{specs → specs_DEPRECATED}/components/UnimplementedNativeViewNativeComponent.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityManager.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeActionSheetManager.js +7 -7
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeAlertManager.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedModule.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedTurboModule.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppState.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeBlobModule.js +1 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeClipboard.js +1 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevMenu.js +0 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevSettings.js +0 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceInfo.js +8 -8
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeDialogManagerAndroid.js +4 -4
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeExceptionsManager.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeI18nManager.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageEditor.js +9 -9
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderAndroid.js +1 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderWin32.js +1 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreAndroid.js +1 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreIOS.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingIOS.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativePermissionsAndroid.js +5 -4
- package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsAndroid.js +4 -4
- package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsIOS.js +4 -4
- package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsWin.js +5 -10
- package/src/private/{specs → specs_DEPRECATED}/modules/NativePushNotificationManagerIOS.js +7 -7
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeSampleTurboModule.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeSettingsManager.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeShareModule.js +3 -3
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeSourceCode.js +2 -2
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerAndroid.js +4 -4
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerIOS.js +6 -6
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeToastAndroid.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +184 -0
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeVibration.js +1 -1
- package/src/private/{specs → specs_DEPRECATED}/modules/NativeWebSocketModule.js +1 -1
- package/{flow/react.js → src/private/types/HostComponent.js} +6 -5
- package/src/private/types/HostInstance.js +50 -0
- package/src/private/webapis/dom/events/CustomEvent.js +38 -0
- package/src/private/webapis/dom/events/Event.js +236 -0
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +130 -0
- package/src/private/webapis/dom/events/EventTarget.js +436 -0
- package/src/private/webapis/dom/events/internals/EventInternals.js +120 -0
- package/src/private/webapis/dom/events/internals/EventTargetInternals.js +52 -0
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +121 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +82 -51
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +7 -6
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +26 -26
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +56 -78
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +144 -0
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +55 -0
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +44 -0
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +305 -194
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/{dom/oldstylecollections → geometry}/DOMRectList.js +3 -3
- package/src/private/webapis/html/events/MessageEvent.js +56 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +6 -6
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
- package/src/private/webapis/intersectionobserver/{IntersectionObserverManager.js → internals/IntersectionObserverManager.js} +20 -17
- package/src/private/webapis/mutationobserver/MutationObserver.js +11 -11
- package/src/private/webapis/mutationobserver/{MutationObserverManager.js → internals/MutationObserverManager.js} +12 -14
- package/src/private/webapis/performance/EventTiming.js +1 -1
- package/src/private/webapis/performance/Performance.js +3 -3
- package/src/private/webapis/performance/PerformanceObserver.js +8 -8
- package/src/private/webapis/performance/{RawPerformanceEntry.js → internals/RawPerformanceEntry.js} +6 -6
- package/src/private/webapis/performance/{Utilities.js → internals/Utilities.js} +1 -1
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +1 -1
- package/src/private/webapis/websockets/events/CloseEvent.js +52 -0
- package/src/private/webapis/xhr/events/ProgressEvent.js +52 -0
- package/src/types/globals.d.ts +628 -0
- package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +14 -14
- package/src-win/Libraries/Text/Text.d.ts +1 -1
- package/types/index.d.ts +2 -58
- package/Libraries/Animated/AnimatedWeb.js +0 -26
- package/Libraries/Inspector/Inspector.win32.js +0 -212
- package/Libraries/Inspector/InspectorOverlay.win32.js +0 -68
- package/Libraries/JSInspector/InspectorAgent.js +0 -27
- package/Libraries/JSInspector/JSInspector.js +0 -33
- package/Libraries/JSInspector/NetworkAgent.js +0 -295
- package/Libraries/Utilities/DebugEnvironment.js +0 -16
- package/Libraries/Utilities/Platform.flow.js +0 -91
- package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +0 -19
- package/Libraries/YellowBox/YellowBoxDeprecated.js +0 -75
- package/src/private/specs/modules/NativeCPUTime.js +0 -24
- package/src/private/specs/modules/NativeFantom.js +0 -37
- package/src/private/specs/modules/NativeUIManager.js +0 -111
- package/types/modules/globals.d.ts +0 -599
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfo.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfoWin32.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppearance.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeBugReporting.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevLoadingView.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceEventManager.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeFileReaderModule.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeHeadlessJsTaskSupport.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeIntentAndroid.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeJSCHeapCapture.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeKeyboardObserver.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLinkingManager.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLogBox.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeModalManager.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingAndroid.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeReactDevToolsSettingsManager.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeRedBox.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSegmentFetcher.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSoundManager.js +0 -0
- /package/src/private/{specs → specs_DEPRECATED}/modules/NativeTiming.js +0 -0
- /package/src/private/webapis/dom/nodes/{utilities → internals}/Traversal.js +0 -0
- /package/src/private/webapis/{dom/geometry → geometry}/DOMRect.js +0 -0
- /package/src/private/webapis/{dom/geometry → geometry}/DOMRectReadOnly.js +0 -0
- /package/src/private/webapis/{dom/oldstylecollections → utils}/ArrayLikeUtils.js +0 -0
|
@@ -85,7 +85,7 @@ function _executeAsAnimatedBatch(id: string, operation: () => void) {
|
|
|
85
85
|
* See https://reactnative.dev/docs/animatedvalue
|
|
86
86
|
*/
|
|
87
87
|
export default class AnimatedValue extends AnimatedWithChildren {
|
|
88
|
-
#
|
|
88
|
+
#listenerCount: number = 0;
|
|
89
89
|
#updateSubscription: ?EventSubscription = null;
|
|
90
90
|
|
|
91
91
|
_value: number;
|
|
@@ -107,21 +107,14 @@ export default class AnimatedValue extends AnimatedWithChildren {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
this.#attached = true;
|
|
112
|
-
this.#ensureUpdateSubscriptionExists();
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
__detach(): void {
|
|
110
|
+
__detach() {
|
|
116
111
|
if (this.__isNative) {
|
|
117
|
-
this.#updateSubscription?.remove();
|
|
118
112
|
NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {
|
|
119
113
|
this._value = value - this._offset;
|
|
120
114
|
});
|
|
121
115
|
}
|
|
122
116
|
this.stopAnimation();
|
|
123
117
|
super.__detach();
|
|
124
|
-
this.#attached = false;
|
|
125
118
|
}
|
|
126
119
|
|
|
127
120
|
__getValue(): number {
|
|
@@ -130,25 +123,40 @@ export default class AnimatedValue extends AnimatedWithChildren {
|
|
|
130
123
|
|
|
131
124
|
__makeNative(platformConfig: ?PlatformConfig): void {
|
|
132
125
|
super.__makeNative(platformConfig);
|
|
133
|
-
this.#
|
|
126
|
+
if (this.#listenerCount > 0) {
|
|
127
|
+
this.#ensureUpdateSubscriptionExists();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
addListener(callback: (value: any) => mixed): string {
|
|
132
|
+
const id = super.addListener(callback);
|
|
133
|
+
this.#listenerCount++;
|
|
134
|
+
if (this.__isNative) {
|
|
135
|
+
this.#ensureUpdateSubscriptionExists();
|
|
136
|
+
}
|
|
137
|
+
return id;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
removeListener(id: string): void {
|
|
141
|
+
super.removeListener(id);
|
|
142
|
+
this.#listenerCount--;
|
|
143
|
+
if (this.__isNative && this.#listenerCount === 0) {
|
|
144
|
+
this.#updateSubscription?.remove();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
removeAllListeners(): void {
|
|
149
|
+
super.removeAllListeners();
|
|
150
|
+
this.#listenerCount = 0;
|
|
151
|
+
if (this.__isNative) {
|
|
152
|
+
this.#updateSubscription?.remove();
|
|
153
|
+
}
|
|
134
154
|
}
|
|
135
155
|
|
|
136
|
-
/**
|
|
137
|
-
* NOTE: In theory, we should only need to call this when any listeners
|
|
138
|
-
* are added. However, there is a global `onUserDrivenAnimationEnded`
|
|
139
|
-
* listener that relies on `onAnimatedValueUpdate` having fired to update
|
|
140
|
-
* the values in JavaScript. If that listener is removed, this could be
|
|
141
|
-
* re-optimized.
|
|
142
|
-
*/
|
|
143
156
|
#ensureUpdateSubscriptionExists(): void {
|
|
144
157
|
if (this.#updateSubscription != null) {
|
|
145
158
|
return;
|
|
146
159
|
}
|
|
147
|
-
// The order in which `__attach` and `__makeNative` are called is not
|
|
148
|
-
// deterministic, and we only want to do this when both have occurred.
|
|
149
|
-
if (!this.#attached || !this.__isNative) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
160
|
const nativeTag = this.__getNativeTag();
|
|
153
161
|
NativeAnimatedAPI.startListeningToAnimatedNodeValue(nativeTag);
|
|
154
162
|
const subscription: EventSubscription =
|
|
@@ -8,340 +8,11 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
12
|
-
import type {AnimatedPropsAllowlist} from './nodes/AnimatedProps';
|
|
11
|
+
import type {AnimatedPropsHook} from '../../src/private/animated/createAnimatedPropsHook';
|
|
13
12
|
|
|
14
|
-
import
|
|
15
|
-
import {useAnimatedPropsMemo} from '../../src/private/animated/useAnimatedPropsMemo';
|
|
16
|
-
import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
17
|
-
import {isPublicInstance as isFabricPublicInstance} from '../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils';
|
|
18
|
-
import useRefEffect from '../Utilities/useRefEffect';
|
|
19
|
-
import {AnimatedEvent} from './AnimatedEvent';
|
|
20
|
-
import AnimatedProps from './nodes/AnimatedProps';
|
|
21
|
-
import {
|
|
22
|
-
useCallback,
|
|
23
|
-
useEffect,
|
|
24
|
-
useInsertionEffect,
|
|
25
|
-
useLayoutEffect,
|
|
26
|
-
useMemo,
|
|
27
|
-
useReducer,
|
|
28
|
-
useRef,
|
|
29
|
-
} from 'react';
|
|
30
|
-
|
|
31
|
-
type ReducedProps<TProps> = {
|
|
32
|
-
...TProps,
|
|
33
|
-
collapsable: boolean,
|
|
34
|
-
...
|
|
35
|
-
};
|
|
36
|
-
type CallbackRef<T> = T => mixed;
|
|
37
|
-
|
|
38
|
-
type UpdateCallback = () => void;
|
|
39
|
-
|
|
40
|
-
const useMemoOrAnimatedPropsMemo =
|
|
41
|
-
ReactNativeFeatureFlags.enableAnimatedPropsMemo()
|
|
42
|
-
? useAnimatedPropsMemo
|
|
43
|
-
: useMemo;
|
|
44
|
-
|
|
45
|
-
export default function useAnimatedProps<TProps: {...}, TInstance>(
|
|
46
|
-
props: TProps,
|
|
47
|
-
allowlist?: ?AnimatedPropsAllowlist,
|
|
48
|
-
): [ReducedProps<TProps>, CallbackRef<TInstance | null>] {
|
|
49
|
-
const [, scheduleUpdate] = useReducer<number, void>(count => count + 1, 0);
|
|
50
|
-
const onUpdateRef = useRef<UpdateCallback | null>(null);
|
|
51
|
-
const timerRef = useRef<TimeoutID | null>(null);
|
|
52
|
-
|
|
53
|
-
const allowlistIfEnabled = ReactNativeFeatureFlags.enableAnimatedAllowlist()
|
|
54
|
-
? allowlist
|
|
55
|
-
: null;
|
|
56
|
-
|
|
57
|
-
const node = useMemoOrAnimatedPropsMemo(
|
|
58
|
-
() =>
|
|
59
|
-
new AnimatedProps(
|
|
60
|
-
props,
|
|
61
|
-
() => onUpdateRef.current?.(),
|
|
62
|
-
allowlistIfEnabled,
|
|
63
|
-
),
|
|
64
|
-
[allowlistIfEnabled, props],
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
const useNativePropsInFabric =
|
|
68
|
-
ReactNativeFeatureFlags.shouldUseSetNativePropsInFabric();
|
|
69
|
-
|
|
70
|
-
const useAnimatedPropsLifecycle =
|
|
71
|
-
ReactNativeFeatureFlags.useInsertionEffectsForAnimations()
|
|
72
|
-
? useAnimatedPropsLifecycle_insertionEffects
|
|
73
|
-
: useAnimatedPropsLifecycle_layoutEffects;
|
|
74
|
-
|
|
75
|
-
useAnimatedPropsLifecycle(node);
|
|
76
|
-
|
|
77
|
-
// TODO: This "effect" does three things:
|
|
78
|
-
//
|
|
79
|
-
// 1) Call `setNativeView`.
|
|
80
|
-
// 2) Update `onUpdateRef`.
|
|
81
|
-
// 3) Update listeners for `AnimatedEvent` props.
|
|
82
|
-
//
|
|
83
|
-
// Ideally, each of these would be separate "effects" so that they are not
|
|
84
|
-
// unnecessarily re-run when irrelevant dependencies change. For example, we
|
|
85
|
-
// should be able to hoist all `AnimatedEvent` props and only do #3 if either
|
|
86
|
-
// the `AnimatedEvent` props change or `instance` changes.
|
|
87
|
-
//
|
|
88
|
-
// But there is no way to transparently compose three separate callback refs,
|
|
89
|
-
// so we just combine them all into one for now.
|
|
90
|
-
const refEffect = useCallback(
|
|
91
|
-
(instance: TInstance) => {
|
|
92
|
-
// NOTE: This may be called more often than necessary (e.g. when `props`
|
|
93
|
-
// changes), but `setNativeView` already optimizes for that.
|
|
94
|
-
node.setNativeView(instance);
|
|
95
|
-
|
|
96
|
-
// NOTE: When using the JS animation driver, this callback is called on
|
|
97
|
-
// every animation frame. When using the native driver, this callback is
|
|
98
|
-
// called when the animation completes.
|
|
99
|
-
onUpdateRef.current = () => {
|
|
100
|
-
if (process.env.NODE_ENV === 'test') {
|
|
101
|
-
// Check 1: this is a test.
|
|
102
|
-
// call `scheduleUpdate` to bypass use of setNativeProps.
|
|
103
|
-
return scheduleUpdate();
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const isFabricNode = isFabricInstance(instance);
|
|
107
|
-
if (node.__isNative) {
|
|
108
|
-
// Check 2: this is an animation driven by native.
|
|
109
|
-
// In native driven animations, this callback is only called once the animation completes.
|
|
110
|
-
if (isFabricNode) {
|
|
111
|
-
// Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
|
|
112
|
-
// Must not be called in Paper.
|
|
113
|
-
scheduleUpdate();
|
|
114
|
-
}
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (
|
|
119
|
-
typeof instance !== 'object' ||
|
|
120
|
-
typeof instance?.setNativeProps !== 'function'
|
|
121
|
-
) {
|
|
122
|
-
// Check 3: the instance does not support setNativeProps. Call `scheduleUpdate`.
|
|
123
|
-
return scheduleUpdate();
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (!isFabricNode) {
|
|
127
|
-
// Check 4: this is a paper instance, call setNativeProps.
|
|
128
|
-
// $FlowIgnore[not-a-function] - Assume it's still a function.
|
|
129
|
-
// $FlowFixMe[incompatible-use]
|
|
130
|
-
return instance.setNativeProps(node.__getAnimatedValue());
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
if (!useNativePropsInFabric) {
|
|
134
|
-
// Check 5: setNativeProps are disabled.
|
|
135
|
-
return scheduleUpdate();
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// This is a Fabric instance and setNativeProps is supported.
|
|
139
|
-
|
|
140
|
-
// $FlowIgnore[not-a-function] - Assume it's still a function.
|
|
141
|
-
// $FlowFixMe[incompatible-use]
|
|
142
|
-
instance.setNativeProps(node.__getAnimatedValue());
|
|
143
|
-
|
|
144
|
-
// Keeping state of Fiber tree and Shadow tree in sync.
|
|
145
|
-
//
|
|
146
|
-
// This is done by calling `scheduleUpdate` which will trigger a commit.
|
|
147
|
-
// However, React commit is not fast enough to drive animations.
|
|
148
|
-
// This is where setNativeProps comes in handy but the state between
|
|
149
|
-
// Fiber tree and Shadow tree needs to be kept in sync.
|
|
150
|
-
// The goal is to call `scheduleUpdate` as little as possible to maintain
|
|
151
|
-
// performance but frequently enough to keep state in sync.
|
|
152
|
-
// Debounce is set to 48ms, which is 3 * the duration of a frame.
|
|
153
|
-
// 3 frames was the highest value where flickering state was not observed.
|
|
154
|
-
if (timerRef.current != null) {
|
|
155
|
-
clearTimeout(timerRef.current);
|
|
156
|
-
}
|
|
157
|
-
timerRef.current = setTimeout(() => {
|
|
158
|
-
timerRef.current = null;
|
|
159
|
-
scheduleUpdate();
|
|
160
|
-
}, 48);
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
const target = getEventTarget(instance);
|
|
164
|
-
const events = [];
|
|
165
|
-
|
|
166
|
-
for (const propName in props) {
|
|
167
|
-
// $FlowFixMe[invalid-computed-prop]
|
|
168
|
-
const propValue = props[propName];
|
|
169
|
-
if (propValue instanceof AnimatedEvent && propValue.__isNative) {
|
|
170
|
-
propValue.__attach(target, propName);
|
|
171
|
-
events.push([propName, propValue]);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
return () => {
|
|
176
|
-
onUpdateRef.current = null;
|
|
177
|
-
|
|
178
|
-
for (const [propName, propValue] of events) {
|
|
179
|
-
propValue.__detach(target, propName);
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
},
|
|
183
|
-
[node, useNativePropsInFabric, props],
|
|
184
|
-
);
|
|
185
|
-
const callbackRef = useRefEffect<TInstance>(refEffect);
|
|
186
|
-
|
|
187
|
-
return [reduceAnimatedProps<TProps>(node, props), callbackRef];
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
function reduceAnimatedProps<TProps>(
|
|
191
|
-
node: AnimatedProps,
|
|
192
|
-
props: TProps,
|
|
193
|
-
): ReducedProps<TProps> {
|
|
194
|
-
// Force `collapsable` to be false so that the native view is not flattened.
|
|
195
|
-
// Flattened views cannot be accurately referenced by the native driver.
|
|
196
|
-
return {
|
|
197
|
-
...(ReactNativeFeatureFlags.enableAnimatedPropsMemo()
|
|
198
|
-
? node.__getValueWithStaticProps(props)
|
|
199
|
-
: node.__getValue()),
|
|
200
|
-
collapsable: false,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`
|
|
206
|
-
* and `__detach`. However, this is more complicated because `AnimatedProps`
|
|
207
|
-
* uses reference counting to determine when to recursively detach its children
|
|
208
|
-
* nodes. So in order to optimize this, we avoid detaching until the next attach
|
|
209
|
-
* unless we are unmounting.
|
|
210
|
-
*/
|
|
211
|
-
function useAnimatedPropsLifecycle_layoutEffects(node: AnimatedProps): void {
|
|
212
|
-
const prevNodeRef = useRef<?AnimatedProps>(null);
|
|
213
|
-
const isUnmountingRef = useRef<boolean>(false);
|
|
214
|
-
|
|
215
|
-
useEffect(() => {
|
|
216
|
-
// It is ok for multiple components to call `flushQueue` because it noops
|
|
217
|
-
// if the queue is empty. When multiple animated components are mounted at
|
|
218
|
-
// the same time. Only first component flushes the queue and the others will noop.
|
|
219
|
-
NativeAnimatedHelper.API.flushQueue();
|
|
220
|
-
let drivenAnimationEndedListener: ?EventSubscription = null;
|
|
221
|
-
if (node.__isNative) {
|
|
222
|
-
drivenAnimationEndedListener =
|
|
223
|
-
NativeAnimatedHelper.nativeEventEmitter.addListener(
|
|
224
|
-
'onUserDrivenAnimationEnded',
|
|
225
|
-
data => {
|
|
226
|
-
node.update();
|
|
227
|
-
},
|
|
228
|
-
);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
return () => {
|
|
232
|
-
drivenAnimationEndedListener?.remove();
|
|
233
|
-
};
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
useLayoutEffect(() => {
|
|
237
|
-
isUnmountingRef.current = false;
|
|
238
|
-
return () => {
|
|
239
|
-
isUnmountingRef.current = true;
|
|
240
|
-
};
|
|
241
|
-
}, []);
|
|
242
|
-
|
|
243
|
-
useLayoutEffect(() => {
|
|
244
|
-
node.__attach();
|
|
245
|
-
if (prevNodeRef.current != null) {
|
|
246
|
-
const prevNode = prevNodeRef.current;
|
|
247
|
-
// TODO: Stop restoring default values (unless `reset` is called).
|
|
248
|
-
prevNode.__restoreDefaultValues();
|
|
249
|
-
prevNode.__detach();
|
|
250
|
-
prevNodeRef.current = null;
|
|
251
|
-
}
|
|
252
|
-
return () => {
|
|
253
|
-
if (isUnmountingRef.current) {
|
|
254
|
-
// NOTE: Do not restore default values on unmount, see D18197735.
|
|
255
|
-
node.__detach();
|
|
256
|
-
} else {
|
|
257
|
-
prevNodeRef.current = node;
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
}, [node]);
|
|
261
|
-
}
|
|
13
|
+
import createAnimatedPropsHook from '../../src/private/animated/createAnimatedPropsHook';
|
|
262
14
|
|
|
263
15
|
/**
|
|
264
|
-
*
|
|
265
|
-
* and `__detach`. However, this is more complicated because `AnimatedProps`
|
|
266
|
-
* uses reference counting to determine when to recursively detach its children
|
|
267
|
-
* nodes. So in order to optimize this, we avoid detaching until the next attach
|
|
268
|
-
* unless we are unmounting.
|
|
16
|
+
* @deprecated
|
|
269
17
|
*/
|
|
270
|
-
|
|
271
|
-
const prevNodeRef = useRef<?AnimatedProps>(null);
|
|
272
|
-
const isUnmountingRef = useRef<boolean>(false);
|
|
273
|
-
|
|
274
|
-
useEffect(() => {
|
|
275
|
-
// It is ok for multiple components to call `flushQueue` because it noops
|
|
276
|
-
// if the queue is empty. When multiple animated components are mounted at
|
|
277
|
-
// the same time. Only first component flushes the queue and the others will noop.
|
|
278
|
-
NativeAnimatedHelper.API.flushQueue();
|
|
279
|
-
let drivenAnimationEndedListener: ?EventSubscription = null;
|
|
280
|
-
if (node.__isNative) {
|
|
281
|
-
drivenAnimationEndedListener =
|
|
282
|
-
NativeAnimatedHelper.nativeEventEmitter.addListener(
|
|
283
|
-
'onUserDrivenAnimationEnded',
|
|
284
|
-
data => {
|
|
285
|
-
node.update();
|
|
286
|
-
},
|
|
287
|
-
);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
return () => {
|
|
291
|
-
drivenAnimationEndedListener?.remove();
|
|
292
|
-
};
|
|
293
|
-
});
|
|
294
|
-
|
|
295
|
-
useInsertionEffect(() => {
|
|
296
|
-
isUnmountingRef.current = false;
|
|
297
|
-
return () => {
|
|
298
|
-
isUnmountingRef.current = true;
|
|
299
|
-
};
|
|
300
|
-
}, []);
|
|
301
|
-
|
|
302
|
-
useInsertionEffect(() => {
|
|
303
|
-
node.__attach();
|
|
304
|
-
if (prevNodeRef.current != null) {
|
|
305
|
-
const prevNode = prevNodeRef.current;
|
|
306
|
-
// TODO: Stop restoring default values (unless `reset` is called).
|
|
307
|
-
prevNode.__restoreDefaultValues();
|
|
308
|
-
prevNode.__detach();
|
|
309
|
-
prevNodeRef.current = null;
|
|
310
|
-
}
|
|
311
|
-
return () => {
|
|
312
|
-
if (isUnmountingRef.current) {
|
|
313
|
-
// NOTE: Do not restore default values on unmount, see D18197735.
|
|
314
|
-
node.__detach();
|
|
315
|
-
} else {
|
|
316
|
-
prevNodeRef.current = node;
|
|
317
|
-
}
|
|
318
|
-
};
|
|
319
|
-
}, [node]);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
function getEventTarget<TInstance>(instance: TInstance): TInstance {
|
|
323
|
-
return typeof instance === 'object' &&
|
|
324
|
-
typeof instance?.getScrollableNode === 'function'
|
|
325
|
-
? // $FlowFixMe[incompatible-use] - Legacy instance assumptions.
|
|
326
|
-
instance.getScrollableNode()
|
|
327
|
-
: instance;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// $FlowFixMe[unclear-type] - Legacy instance assumptions.
|
|
331
|
-
function isFabricInstance(instance: any): boolean {
|
|
332
|
-
return (
|
|
333
|
-
isFabricPublicInstance(instance) ||
|
|
334
|
-
// Some components have a setNativeProps function but aren't a host component
|
|
335
|
-
// such as lists like FlatList and SectionList. These should also use
|
|
336
|
-
// forceUpdate in Fabric since setNativeProps doesn't exist on the underlying
|
|
337
|
-
// host component. This crazy hack is essentially special casing those lists and
|
|
338
|
-
// ScrollView itself to use forceUpdate in Fabric.
|
|
339
|
-
// If these components end up using forwardRef then these hacks can go away
|
|
340
|
-
// as instance would actually be the underlying host component and the above check
|
|
341
|
-
// would be sufficient.
|
|
342
|
-
isFabricPublicInstance(instance?.getNativeScrollRef?.()) ||
|
|
343
|
-
isFabricPublicInstance(
|
|
344
|
-
instance?.getScrollResponder?.()?.getNativeScrollRef?.(),
|
|
345
|
-
)
|
|
346
|
-
);
|
|
347
|
-
}
|
|
18
|
+
export default createAnimatedPropsHook(null) as AnimatedPropsHook;
|
|
@@ -8,14 +8,12 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {AnimatedValueConfig} from './nodes/AnimatedValue';
|
|
12
|
-
|
|
13
11
|
import Animated from './Animated';
|
|
14
12
|
import {useRef} from 'react';
|
|
15
13
|
|
|
16
14
|
export default function useAnimatedValue(
|
|
17
15
|
initialValue: number,
|
|
18
|
-
config?: ?
|
|
16
|
+
config?: ?Animated.AnimatedConfig,
|
|
19
17
|
): Animated.Value {
|
|
20
18
|
const ref = useRef<null | Animated.Value>(null);
|
|
21
19
|
if (ref.current == null) {
|
|
@@ -14,17 +14,33 @@ import Platform from '../Utilities/Platform';
|
|
|
14
14
|
import {type EventSubscription} from '../vendor/emitter/EventEmitter';
|
|
15
15
|
import NativeAppState from './NativeAppState';
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* active - The app is running in the foreground
|
|
19
|
+
* background - The app is running in the background. The user is either:
|
|
20
|
+
* - in another app
|
|
21
|
+
* - on the home screen
|
|
22
|
+
* - @platform android - on another Activity (even if it was launched by your app)
|
|
23
|
+
* @platform ios - inactive - This is a state that occurs when transitioning between foreground & background, and during periods of inactivity such as entering the multitasking view, opening the Notification Center or in the event of an incoming call.
|
|
24
|
+
*/
|
|
25
|
+
export type AppStateStatus = 'inactive' | 'background' | 'active';
|
|
18
26
|
|
|
27
|
+
/**
|
|
28
|
+
* change - This even is received when the app state has changed.
|
|
29
|
+
* memoryWarning - This event is used in the need of throwing memory warning or releasing it.
|
|
30
|
+
* @platform android - focus - Received when the app gains focus (the user is interacting with the app).
|
|
31
|
+
* @platform android - blur - Received when the user is not actively interacting with the app.
|
|
32
|
+
*/
|
|
19
33
|
type AppStateEventDefinitions = {
|
|
20
|
-
change: [
|
|
34
|
+
change: [AppStateStatus],
|
|
21
35
|
memoryWarning: [],
|
|
22
36
|
blur: [],
|
|
23
37
|
focus: [],
|
|
24
38
|
};
|
|
25
39
|
|
|
40
|
+
export type AppStateEvent = $Keys<AppStateEventDefinitions>;
|
|
41
|
+
|
|
26
42
|
type NativeAppStateEventDefinitions = {
|
|
27
|
-
appStateDidChange: [{app_state:
|
|
43
|
+
appStateDidChange: [{app_state: AppStateStatus}],
|
|
28
44
|
appStateFocusChange: [boolean],
|
|
29
45
|
memoryWarning: [],
|
|
30
46
|
};
|
|
@@ -35,7 +51,7 @@ type NativeAppStateEventDefinitions = {
|
|
|
35
51
|
*
|
|
36
52
|
* See https://reactnative.dev/docs/appstate
|
|
37
53
|
*/
|
|
38
|
-
class
|
|
54
|
+
class AppStateImpl {
|
|
39
55
|
currentState: ?string = null;
|
|
40
56
|
isAvailable: boolean;
|
|
41
57
|
|
|
@@ -89,7 +105,7 @@ class AppState {
|
|
|
89
105
|
*
|
|
90
106
|
* See https://reactnative.dev/docs/appstate#addeventlistener
|
|
91
107
|
*/
|
|
92
|
-
addEventListener<K:
|
|
108
|
+
addEventListener<K: AppStateEvent>(
|
|
93
109
|
type: K,
|
|
94
110
|
handler: (...$ElementType<AppStateEventDefinitions, K>) => void,
|
|
95
111
|
): EventSubscription {
|
|
@@ -100,7 +116,7 @@ class AppState {
|
|
|
100
116
|
switch (type) {
|
|
101
117
|
case 'change':
|
|
102
118
|
// $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type
|
|
103
|
-
const changeHandler:
|
|
119
|
+
const changeHandler: AppStateStatus => void = handler;
|
|
104
120
|
return emitter.addListener('appStateDidChange', appStateData => {
|
|
105
121
|
changeHandler(appStateData.app_state);
|
|
106
122
|
});
|
|
@@ -125,4 +141,5 @@ class AppState {
|
|
|
125
141
|
}
|
|
126
142
|
}
|
|
127
143
|
|
|
128
|
-
|
|
144
|
+
const AppState: AppStateImpl = new AppStateImpl();
|
|
145
|
+
export default AppState;
|
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
export * from '../../src/private/
|
|
12
|
-
import NativeAppState from '../../src/private/
|
|
11
|
+
export * from '../../src/private/specs_DEPRECATED/modules/NativeAppState';
|
|
12
|
+
import NativeAppState from '../../src/private/specs_DEPRECATED/modules/NativeAppState';
|
|
13
13
|
export default NativeAppState;
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
import typeof MessageQueueT from './MessageQueue';
|
|
14
|
+
|
|
15
|
+
const MessageQueue: MessageQueueT = require('./MessageQueue').default;
|
|
14
16
|
|
|
15
17
|
const BatchedBridge: MessageQueue = new MessageQueue();
|
|
16
18
|
|
|
@@ -25,4 +27,4 @@ Object.defineProperty(global, '__fbBatchedBridge', {
|
|
|
25
27
|
value: BatchedBridge,
|
|
26
28
|
});
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
export default BatchedBridge;
|
|
@@ -11,10 +11,11 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
const Systrace = require('../Performance/Systrace');
|
|
14
|
-
const deepFreezeAndThrowOnMutationInDev =
|
|
14
|
+
const deepFreezeAndThrowOnMutationInDev =
|
|
15
|
+
require('../Utilities/deepFreezeAndThrowOnMutationInDev').default;
|
|
15
16
|
const stringifySafe = require('../Utilities/stringifySafe').default;
|
|
16
|
-
const warnOnce = require('../Utilities/warnOnce');
|
|
17
|
-
const ErrorUtils = require('../vendor/core/ErrorUtils');
|
|
17
|
+
const warnOnce = require('../Utilities/warnOnce').default;
|
|
18
|
+
const ErrorUtils = require('../vendor/core/ErrorUtils').default;
|
|
18
19
|
const invariant = require('invariant');
|
|
19
20
|
|
|
20
21
|
export type SpyData = {
|
|
@@ -489,4 +490,4 @@ class MessageQueue {
|
|
|
489
490
|
}
|
|
490
491
|
}
|
|
491
492
|
|
|
492
|
-
|
|
493
|
+
export default MessageQueue;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
import type {ExtendedError} from '../Core/ExtendedError';
|
|
14
14
|
|
|
15
|
-
const BatchedBridge = require('./BatchedBridge');
|
|
15
|
+
const BatchedBridge = require('./BatchedBridge').default;
|
|
16
16
|
const invariant = require('invariant');
|
|
17
17
|
|
|
18
18
|
export type ModuleConfig = [
|
|
@@ -176,7 +176,8 @@ function updateErrorWithErrorData(
|
|
|
176
176
|
return Object.assign(error, errorData || {});
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
|
|
179
|
+
/* $FlowFixMe[unclear-type] unclear type of NativeModules */
|
|
180
|
+
let NativeModules: {[moduleName: string]: any, ...} = {};
|
|
180
181
|
if (global.nativeModuleProxy) {
|
|
181
182
|
NativeModules = global.nativeModuleProxy;
|
|
182
183
|
} else {
|
|
@@ -186,7 +187,8 @@ if (global.nativeModuleProxy) {
|
|
|
186
187
|
'__fbBatchedBridgeConfig is not set, cannot invoke native modules',
|
|
187
188
|
);
|
|
188
189
|
|
|
189
|
-
const defineLazyObjectProperty =
|
|
190
|
+
const defineLazyObjectProperty =
|
|
191
|
+
require('../Utilities/defineLazyObjectProperty').default;
|
|
190
192
|
(bridgeConfig.remoteModuleConfig || []).forEach(
|
|
191
193
|
(config: ModuleConfig, moduleID: number) => {
|
|
192
194
|
// Initially this config will only contain the module name when running in JSC. The actual
|
|
@@ -209,4 +211,4 @@ if (global.nativeModuleProxy) {
|
|
|
209
211
|
);
|
|
210
212
|
}
|
|
211
213
|
|
|
212
|
-
|
|
214
|
+
export default NativeModules;
|
package/Libraries/Blob/Blob.js
CHANGED
|
@@ -58,7 +58,7 @@ class Blob {
|
|
|
58
58
|
* Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
|
|
59
59
|
*/
|
|
60
60
|
constructor(parts: Array<Blob | string> = [], options?: BlobOptions) {
|
|
61
|
-
const BlobManager = require('./BlobManager');
|
|
61
|
+
const BlobManager = require('./BlobManager').default;
|
|
62
62
|
this.data = BlobManager.createFromParts(parts, options).data;
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -81,8 +81,8 @@ class Blob {
|
|
|
81
81
|
return this._data;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
slice(start?: number, end?: number, contentType
|
|
85
|
-
const BlobManager = require('./BlobManager');
|
|
84
|
+
slice(start?: number, end?: number, contentType?: string = ''): Blob {
|
|
85
|
+
const BlobManager = require('./BlobManager').default;
|
|
86
86
|
let {offset, size} = this.data;
|
|
87
87
|
|
|
88
88
|
if (typeof start === 'number') {
|
|
@@ -132,7 +132,7 @@ class Blob {
|
|
|
132
132
|
* `new Blob([blob, ...])` actually copies the data in memory.
|
|
133
133
|
*/
|
|
134
134
|
close() {
|
|
135
|
-
const BlobManager = require('./BlobManager');
|
|
135
|
+
const BlobManager = require('./BlobManager').default;
|
|
136
136
|
BlobManager.release(this.data.blobId);
|
|
137
137
|
this.data = null;
|
|
138
138
|
}
|
|
@@ -155,4 +155,4 @@ class Blob {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
export default Blob;
|
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import typeof BlobT from './Blob';
|
|
11
12
|
import type {BlobCollector, BlobData, BlobOptions} from './BlobTypes';
|
|
12
13
|
|
|
13
14
|
import NativeBlobModule from './NativeBlobModule';
|
|
14
15
|
import invariant from 'invariant';
|
|
15
16
|
|
|
16
|
-
const Blob = require('./Blob');
|
|
17
|
+
const Blob: BlobT = require('./Blob').default;
|
|
17
18
|
const BlobRegistry = require('./BlobRegistry');
|
|
18
19
|
|
|
19
20
|
/*eslint-disable no-bitwise */
|
|
@@ -176,4 +177,4 @@ class BlobManager {
|
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
179
|
|
|
179
|
-
|
|
180
|
+
export default BlobManager;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
const registry: Map<string, number> = new Map();
|
|
12
12
|
|
|
13
|
-
const register = (id: string) => {
|
|
13
|
+
export const register = (id: string) => {
|
|
14
14
|
const used = registry.get(id);
|
|
15
15
|
|
|
16
16
|
if (used != null) {
|
|
@@ -20,7 +20,7 @@ const register = (id: string) => {
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
const unregister = (id: string) => {
|
|
23
|
+
export const unregister = (id: string) => {
|
|
24
24
|
const used = registry.get(id);
|
|
25
25
|
|
|
26
26
|
if (used != null) {
|
|
@@ -32,12 +32,6 @@ const unregister = (id: string) => {
|
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
const has = (id: string): number | boolean => {
|
|
35
|
+
export const has = (id: string): number | boolean => {
|
|
36
36
|
return registry.get(id) || false;
|
|
37
37
|
};
|
|
38
|
-
|
|
39
|
-
module.exports = {
|
|
40
|
-
register,
|
|
41
|
-
unregister,
|
|
42
|
-
has,
|
|
43
|
-
};
|