@office-iss/react-native-win32 0.0.0-canary.297 → 0.0.0-canary.299
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 +8 -4
- package/CHANGELOG.json +55 -1
- package/CHANGELOG.md +25 -5
- package/IntegrationTests/AccessibilityManagerTest.js +1 -1
- package/IntegrationTests/AppEventsTest.js +1 -1
- package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
- package/IntegrationTests/ImageCachePolicyTest.js +2 -2
- package/IntegrationTests/ImageSnapshotTest.js +1 -1
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
- package/IntegrationTests/IntegrationTestsApp.js +2 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/LoggingTestModule.js +16 -20
- package/IntegrationTests/PromiseTest.js +1 -1
- package/IntegrationTests/SimpleSnapshotTest.js +1 -1
- package/IntegrationTests/SyncMethodTest.js +1 -1
- package/IntegrationTests/TimersTest.js +2 -1
- package/IntegrationTests/WebSocketTest.js +2 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.js +3 -3
- package/Libraries/Alert/Alert.win32.js +1 -1
- package/Libraries/Alert/NativeAlertManager.js +1 -0
- package/Libraries/Alert/RCTAlertManager.android.js +19 -13
- package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
- package/Libraries/Alert/RCTAlertManager.js +1 -3
- package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +2 -2
- package/Libraries/Animated/AnimatedExports.js.flow +5 -0
- package/Libraries/Animated/AnimatedImplementation.js +44 -44
- package/Libraries/Animated/AnimatedMock.js +2 -2
- package/Libraries/Animated/Easing.js +1 -1
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/SpringConfig.js +1 -1
- package/Libraries/Animated/animations/Animation.js +6 -1
- package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
- package/Libraries/Animated/components/AnimatedScrollView.js +6 -5
- package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
- package/Libraries/Animated/components/AnimatedText.js +2 -5
- package/Libraries/Animated/components/AnimatedView.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +2 -4
- package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
- package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/BlobManager.js +4 -0
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +5 -1
- package/Libraries/Blob/URLSearchParams.js.flow +2 -1
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -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 +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
- package/Libraries/Components/Button.js +8 -5
- package/Libraries/Components/Button.win32.js +8 -5
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
- package/Libraries/Components/Pressable/Pressable.js +8 -2
- package/Libraries/Components/Pressable/Pressable.win32.js +8 -8
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +3 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +24 -1
- package/Libraries/Components/ScrollView/ScrollView.js +7 -3
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
- package/Libraries/Components/Sound/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
- package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
- package/Libraries/Components/Switch/Switch.js +2 -1
- package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -19
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
- package/Libraries/Components/TextInput/TextInput.flow.js +12 -10
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +11 -9
- package/Libraries/Components/TextInput/TextInput.js +16 -14
- package/Libraries/Components/TextInput/TextInput.win32.js +42 -13
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.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 +17 -3
- package/Libraries/Components/Touchable/Touchable.win32.js +17 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +5 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +3 -2
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +3 -2
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
- package/Libraries/Components/View/View.js +18 -19
- package/Libraries/Components/View/View.win32.js +17 -3
- package/Libraries/Components/View/ViewAccessibility.js +1 -8
- package/Libraries/Components/View/ViewAccessibility.win32.js +1 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +22 -2
- package/Libraries/Components/View/ViewPropTypes.js +9 -1
- package/Libraries/Components/View/ViewPropTypes.win32.js +9 -1
- package/Libraries/Core/Devtools/getDevServer.js +1 -1
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +29 -16
- package/Libraries/Core/InitializeCore.js +1 -1
- package/Libraries/Core/NativeExceptionsManager.js +1 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/checkNativeVersion.js +1 -0
- package/Libraries/Core/setUpDeveloperTools.js +13 -11
- package/Libraries/Core/setUpReactDevTools.js +21 -4
- package/Libraries/Debugging/DebuggingOverlay.js +6 -6
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/Image/Image.android.js +3 -3
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageSource.d.ts +5 -0
- package/Libraries/Image/ImageViewNativeComponent.js +3 -3
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/RelativeImageStub.js +2 -2
- package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +68 -54
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/TaskQueue.js +22 -9
- package/Libraries/Interaction/TouchHistoryMath.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/Lists/FlatList.js +5 -6
- package/Libraries/Lists/SectionList.js +4 -4
- package/Libraries/Lists/VirtualizedList.js +3 -2
- package/Libraries/LogBox/Data/LogBoxData.js +7 -4
- package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
- package/Libraries/LogBox/LogBox.js +72 -99
- package/Libraries/Modal/Modal.d.ts +8 -2
- package/Libraries/Modal/Modal.js +24 -3
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -17
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +5 -3
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.win32.js +1 -1
- package/Libraries/Promise.js +1 -1
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/RendererProxy.js +1 -1
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -2
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -12
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +3 -12
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/Settings/Settings.js +1 -1
- package/Libraries/Settings/SettingsFallback.js +1 -1
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -0
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +3 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/StyleSheet/processColorArray.js +1 -1
- package/Libraries/StyleSheet/processFilter.js +1 -1
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +1 -1
- package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/Text/Text.js +5 -7
- package/Libraries/Text/Text.win32.js +1 -1
- package/Libraries/Text/TextAncestor.js +3 -10
- package/Libraries/Text/TextAncestorContext.js +23 -0
- package/Libraries/Text/TextNativeComponent.js +4 -0
- package/Libraries/Text/TextNativeComponent.win32.js +4 -0
- package/Libraries/Text/TextProps.js +2 -2
- package/Libraries/Text/TextProps.win32.js +2 -2
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CodegenTypesNamespace.js +2 -1
- package/Libraries/Types/CoreEventTypes.d.ts +4 -0
- package/Libraries/Utilities/Appearance.js +1 -1
- package/Libraries/Utilities/BackHandler.js.flow +1 -1
- package/Libraries/Utilities/DevLoadingView.js +1 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/HMRClient.js +13 -3
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/PixelRatio.js +1 -1
- package/Libraries/Utilities/Platform.android.js +2 -5
- package/Libraries/Utilities/Platform.ios.js +2 -5
- package/Libraries/Utilities/Platform.js +1 -1
- package/Libraries/Utilities/Platform.js.flow +2 -2
- package/Libraries/Utilities/Platform.win32.js +2 -5
- package/Libraries/Utilities/PlatformTypes.js +1 -1
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +5 -3
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/createPerformanceLogger.js +59 -20
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +1 -1
- package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
- package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
- package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/Utilities/stringifyViewConfig.js +1 -1
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +1 -1
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/Vibration/Vibration.js +1 -2
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/index.js +22 -1
- package/index.win32.js +15 -2
- package/interface.js +1 -1
- package/jest/MockNativeMethods.js +9 -3
- package/jest/RefreshControlMock.js +32 -0
- package/jest/assetFileTransformer.js +1 -0
- package/jest/local-setup.js +4 -3
- package/jest/mock.js +39 -0
- package/jest/mockComponent.js +47 -17
- package/jest/mockNativeComponent.js +24 -14
- package/jest/mocks/AccessibilityInfo.js +62 -0
- package/jest/mocks/ActivityIndicator.js +23 -0
- package/jest/mocks/AppState.js +19 -0
- package/{flow/Stringish.js → jest/mocks/Clipboard.js} +6 -4
- package/jest/mocks/Image.js +23 -0
- package/jest/mocks/InitializeCore.js +9 -0
- package/jest/mocks/Linking.js +28 -0
- package/jest/mocks/Modal.js +33 -0
- package/jest/mocks/NativeComponentRegistry.js +30 -0
- package/jest/mocks/NativeModules.js +239 -0
- package/jest/mocks/RefreshControl.js +31 -0
- package/jest/mocks/RendererProxy.js +45 -0
- package/jest/mocks/ScrollView.js +58 -0
- package/jest/mocks/Text.js +27 -0
- package/jest/mocks/TextInput.js +32 -0
- package/jest/mocks/UIManager.js +60 -0
- package/jest/mocks/Vibration.js +16 -0
- package/jest/mocks/View.js +27 -0
- package/jest/mocks/ViewNativeComponent.js +23 -0
- package/jest/mocks/requireNativeComponent.js +22 -0
- package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
- package/jest/react-native-env.js +1 -0
- package/jest/renderer.js +1 -1
- package/jest/resolver.js +1 -0
- package/jest/setup.js +64 -445
- package/overrides.json +38 -38
- package/package.json +14 -14
- package/src/private/animated/NativeAnimatedHelper.js +2 -0
- package/src/private/animated/NativeAnimatedHelper.win32.js +2 -0
- package/src/private/animated/createAnimatedPropsHook.js +4 -1
- package/src/private/animated/createAnimatedPropsMemoHook.js +2 -2
- package/src/private/components/virtualview/VirtualView.js +145 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +75 -30
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -5
- package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
- package/src/private/setup/setUpPerformanceObserver.js +7 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
- package/src/private/styles/composeStyles.js +5 -12
- package/src/private/types/HostInstance.js +1 -1
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +1 -1
- package/src/private/webapis/errors/DOMException.js +1 -1
- package/src/private/webapis/geometry/DOMRectList.js +1 -1
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +4 -1
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -1
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -17
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +19 -73
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -7
- package/src/private/webapis/performance/EventTiming.js +1 -1
- package/src/private/webapis/performance/LongTasks.js +1 -1
- package/src/private/webapis/performance/Performance.js +165 -62
- package/src/private/webapis/performance/PerformanceEntry.js +21 -17
- package/src/private/webapis/performance/PerformanceObserver.js +32 -28
- package/src/private/webapis/performance/ResourceTiming.js +108 -0
- package/src/private/webapis/performance/UserTiming.js +61 -9
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +48 -33
- package/src/private/webapis/performance/internals/Utilities.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +13 -1
- package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
- package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +22 -2
- package/types/modules/Devtools.d.ts +23 -9
- package/Libraries/BugReporting/BugReporting.js +0 -140
- package/Libraries/BugReporting/NativeBugReporting.js +0 -13
- package/Libraries/BugReporting/dumpReactTree.js +0 -151
- package/Libraries/BugReporting/getReactData.js +0 -187
- package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
- package/flow/HermesInternalType.js +0 -114
- package/flow/console.js +0 -49
- package/flow/global.js +0 -88
- package/jest/mockModal.js +0 -32
- package/jest/mockScrollView.js +0 -35
- package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
|
@@ -23,17 +23,19 @@ if (__DEV__) {
|
|
|
23
23
|
// TODO(T214991636): Remove legacy Metro log forwarding
|
|
24
24
|
if (console._isPolyfilled) {
|
|
25
25
|
// We assume full control over the console and send JavaScript logs to Metro.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
26
|
+
(
|
|
27
|
+
[
|
|
28
|
+
'trace',
|
|
29
|
+
'info',
|
|
30
|
+
'warn',
|
|
31
|
+
'error',
|
|
32
|
+
'log',
|
|
33
|
+
'group',
|
|
34
|
+
'groupCollapsed',
|
|
35
|
+
'groupEnd',
|
|
36
|
+
'debug',
|
|
37
|
+
] as const
|
|
38
|
+
).forEach(level => {
|
|
37
39
|
const originalFunction = console[level];
|
|
38
40
|
console[level] = function (...args: $ReadOnlyArray<mixed>) {
|
|
39
41
|
HMRClient.log(level, args);
|
|
@@ -143,10 +143,7 @@ if (__DEV__) {
|
|
|
143
143
|
// Get hostname from development server (packager)
|
|
144
144
|
const devServer = getDevServer();
|
|
145
145
|
const host = devServer.bundleLoadedFromServer
|
|
146
|
-
? devServer.url
|
|
147
|
-
.replace(/https?:\/\//, '')
|
|
148
|
-
.replace(/\/$/, '')
|
|
149
|
-
.split(':')[0]
|
|
146
|
+
? guessHostFromDevServerUrl(devServer.url)
|
|
150
147
|
: 'localhost';
|
|
151
148
|
|
|
152
149
|
// Read the optional global variable for backward compatibility.
|
|
@@ -259,3 +256,23 @@ function readReloadAndProfileConfig(
|
|
|
259
256
|
onReloadAndProfileFlagsReset,
|
|
260
257
|
};
|
|
261
258
|
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* This is a bad, no good, broken hack to get the host from a dev server URL for the purposes
|
|
262
|
+
* of connecting to the legacy React DevTools socket (for the standalone react-devtools package).
|
|
263
|
+
* It has too many bugs to list. Please don't use it in new code.
|
|
264
|
+
*
|
|
265
|
+
* The correct implementation would just be `return new URL(url).host`, but React Native does not
|
|
266
|
+
* ship with a spec-compliant `URL` class yet. Alternatively, this can be deleted when we delete
|
|
267
|
+
* `connectToWSBasedReactDevToolsFrontend`.
|
|
268
|
+
*/
|
|
269
|
+
function guessHostFromDevServerUrl(url: string): string {
|
|
270
|
+
const hopefullyHostAndPort = url
|
|
271
|
+
.replace(/https?:\/\//, '')
|
|
272
|
+
.replace(/\/$/, '');
|
|
273
|
+
// IPv6 addresses contain colons, so the split(':') below will return garbage.
|
|
274
|
+
if (hopefullyHostAndPort.includes(']')) {
|
|
275
|
+
return hopefullyHostAndPort.split(']')[0] + ']';
|
|
276
|
+
}
|
|
277
|
+
return hopefullyHostAndPort.split(':')[0];
|
|
278
|
+
}
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
import type {
|
|
12
12
|
ElementRectangle,
|
|
13
13
|
TraceUpdate,
|
|
14
|
-
} from '
|
|
14
|
+
} from '../../src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent';
|
|
15
15
|
|
|
16
|
+
import DebuggingOverlayNativeComponent, {
|
|
17
|
+
Commands,
|
|
18
|
+
} from '../../src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent';
|
|
16
19
|
import View from '../Components/View/View';
|
|
17
20
|
import UIManager from '../ReactNative/UIManager';
|
|
18
21
|
import StyleSheet from '../StyleSheet/StyleSheet';
|
|
19
|
-
import DebuggingOverlayNativeComponent, {
|
|
20
|
-
Commands,
|
|
21
|
-
} from './DebuggingOverlayNativeComponent';
|
|
22
22
|
import * as React from 'react';
|
|
23
23
|
|
|
24
24
|
const {useRef, useImperativeHandle} = React;
|
|
@@ -26,8 +26,8 @@ const isNativeComponentReady =
|
|
|
26
26
|
UIManager.hasViewManagerConfig('DebuggingOverlay');
|
|
27
27
|
|
|
28
28
|
type DebuggingOverlayHandle = {
|
|
29
|
-
highlightTraceUpdates(updates: TraceUpdate
|
|
30
|
-
highlightElements(elements: ElementRectangle
|
|
29
|
+
highlightTraceUpdates(updates: $ReadOnlyArray<TraceUpdate>): void,
|
|
30
|
+
highlightElements(elements: $ReadOnlyArray<ElementRectangle>): void,
|
|
31
31
|
clearElementsHighlight(): void,
|
|
32
32
|
};
|
|
33
33
|
|
|
@@ -4,10 +4,11 @@
|
|
|
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
|
-
* @format
|
|
8
7
|
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
export * from '../../src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent';
|
|
12
12
|
import DebuggingOverlayNativeComponent from '../../src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent';
|
|
13
|
+
|
|
13
14
|
export default DebuggingOverlayNativeComponent;
|
|
@@ -32,7 +32,7 @@ export type {EventSubscription, EmitterSubscription};
|
|
|
32
32
|
export type NativeEventSubscription = EventSubscription;
|
|
33
33
|
|
|
34
34
|
// $FlowFixMe[unclear-type] unclear type of events
|
|
35
|
-
type
|
|
35
|
+
type UnsafeNativeEventObject = Object;
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* `NativeEventEmitter` is intended for use by Native Modules to emit events to
|
|
@@ -46,8 +46,8 @@ type UnsafeObject = Object;
|
|
|
46
46
|
*/
|
|
47
47
|
export default class NativeEventEmitter<
|
|
48
48
|
TEventToArgsMap: $ReadOnly<
|
|
49
|
-
Record<string, $ReadOnlyArray<
|
|
50
|
-
> = $ReadOnly<Record<string, $ReadOnlyArray<
|
|
49
|
+
Record<string, $ReadOnlyArray<UnsafeNativeEventObject>>,
|
|
50
|
+
> = $ReadOnly<Record<string, $ReadOnlyArray<UnsafeNativeEventObject>>>,
|
|
51
51
|
> implements IEventEmitter<TEventToArgsMap>
|
|
52
52
|
{
|
|
53
53
|
_nativeModule: ?NativeModule;
|
|
@@ -16,7 +16,7 @@ import type {AbstractImageAndroid, ImageAndroid} from './ImageTypes.flow';
|
|
|
16
16
|
|
|
17
17
|
import flattenStyle from '../StyleSheet/flattenStyle';
|
|
18
18
|
import StyleSheet from '../StyleSheet/StyleSheet';
|
|
19
|
-
import
|
|
19
|
+
import TextAncestorContext from '../Text/TextAncestorContext';
|
|
20
20
|
import ImageAnalyticsTagContext from './ImageAnalyticsTagContext';
|
|
21
21
|
import {
|
|
22
22
|
unstable_getImageComponentDecorator,
|
|
@@ -222,7 +222,7 @@ let BaseImage: AbstractImageAndroid = ({
|
|
|
222
222
|
}
|
|
223
223
|
: nativeProps;
|
|
224
224
|
return (
|
|
225
|
-
<
|
|
225
|
+
<TextAncestorContext.Consumer>
|
|
226
226
|
{hasTextAncestor => {
|
|
227
227
|
if (hasTextAncestor) {
|
|
228
228
|
return (
|
|
@@ -245,7 +245,7 @@ let BaseImage: AbstractImageAndroid = ({
|
|
|
245
245
|
/>
|
|
246
246
|
);
|
|
247
247
|
}}
|
|
248
|
-
</
|
|
248
|
+
</TextAncestorContext.Consumer>
|
|
249
249
|
);
|
|
250
250
|
}}
|
|
251
251
|
</ImageAnalyticsTagContext.Consumer>
|
|
@@ -26,7 +26,7 @@ import {ConditionallyIgnoredEventHandlers} from '../NativeComponent/ViewConfigIg
|
|
|
26
26
|
import codegenNativeCommands from '../Utilities/codegenNativeCommands';
|
|
27
27
|
import Platform from '../Utilities/Platform';
|
|
28
28
|
|
|
29
|
-
type
|
|
29
|
+
type ImageHostComponentProps = $ReadOnly<{
|
|
30
30
|
...ImageProps,
|
|
31
31
|
...ViewProps,
|
|
32
32
|
|
|
@@ -162,8 +162,8 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
162
162
|
},
|
|
163
163
|
};
|
|
164
164
|
|
|
165
|
-
const ImageViewNativeComponent: HostComponent<
|
|
166
|
-
NativeComponentRegistry.get<
|
|
165
|
+
const ImageViewNativeComponent: HostComponent<ImageHostComponentProps> =
|
|
166
|
+
NativeComponentRegistry.get<ImageHostComponentProps>(
|
|
167
167
|
'RCTImageView',
|
|
168
168
|
() => __INTERNAL_VIEW_CONFIG,
|
|
169
169
|
);
|
|
@@ -4,8 +4,8 @@
|
|
|
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
|
-
* @format
|
|
8
7
|
* @flow strict
|
|
8
|
+
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
@@ -27,5 +27,5 @@ const RelativeImageStub = (AssetRegistry.registerAsset({
|
|
|
27
27
|
type: 'png',
|
|
28
28
|
}): number);
|
|
29
29
|
|
|
30
|
-
// eslint-disable-next-line
|
|
30
|
+
// eslint-disable-next-line @react-native/monorepo/no-commonjs-exports
|
|
31
31
|
module.exports = RelativeImageStub;
|
|
@@ -4,8 +4,8 @@
|
|
|
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
|
-
* @format
|
|
8
7
|
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
@@ -18,7 +18,7 @@ import type {ImageResizeMode} from './ImageResizeMode';
|
|
|
18
18
|
|
|
19
19
|
import * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';
|
|
20
20
|
|
|
21
|
-
type
|
|
21
|
+
type RCTTextInlineImageNativeProps = $ReadOnly<{
|
|
22
22
|
...ViewProps,
|
|
23
23
|
resizeMode?: ?ImageResizeMode,
|
|
24
24
|
src?: ?$ReadOnlyArray<?$ReadOnly<{uri?: ?string, ...}>>,
|
|
@@ -40,8 +40,8 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
|
|
|
40
40
|
},
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
const TextInlineImage: HostComponent<
|
|
44
|
-
NativeComponentRegistry.get<
|
|
43
|
+
const TextInlineImage: HostComponent<RCTTextInlineImageNativeProps> =
|
|
44
|
+
NativeComponentRegistry.get<RCTTextInlineImageNativeProps>(
|
|
45
45
|
'RCTTextInlineImage',
|
|
46
46
|
() => __INTERNAL_VIEW_CONFIG,
|
|
47
47
|
);
|
|
@@ -4,8 +4,8 @@
|
|
|
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
|
-
* @format
|
|
8
7
|
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import type {EventSubscription} from '../vendor/emitter/EventEmitter';
|
|
@@ -15,7 +15,6 @@ import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNa
|
|
|
15
15
|
import EventEmitter from '../vendor/emitter/EventEmitter';
|
|
16
16
|
|
|
17
17
|
const BatchedBridge = require('../BatchedBridge/BatchedBridge').default;
|
|
18
|
-
const infoLog = require('../Utilities/infoLog').default;
|
|
19
18
|
const TaskQueue = require('./TaskQueue').default;
|
|
20
19
|
const invariant = require('invariant');
|
|
21
20
|
|
|
@@ -31,55 +30,6 @@ const _emitter = new EventEmitter<{
|
|
|
31
30
|
const DEBUG_DELAY: 0 = 0;
|
|
32
31
|
const DEBUG: false = false;
|
|
33
32
|
|
|
34
|
-
/**
|
|
35
|
-
* InteractionManager allows long-running work to be scheduled after any
|
|
36
|
-
* interactions/animations have completed. In particular, this allows JavaScript
|
|
37
|
-
* animations to run smoothly.
|
|
38
|
-
*
|
|
39
|
-
* Applications can schedule tasks to run after interactions with the following:
|
|
40
|
-
*
|
|
41
|
-
* ```
|
|
42
|
-
* InteractionManager.runAfterInteractions(() => {
|
|
43
|
-
* // ...long-running synchronous task...
|
|
44
|
-
* });
|
|
45
|
-
* ```
|
|
46
|
-
*
|
|
47
|
-
* Compare this to other scheduling alternatives:
|
|
48
|
-
*
|
|
49
|
-
* - requestAnimationFrame(): for code that animates a view over time.
|
|
50
|
-
* - setImmediate/setTimeout(): run code later, note this may delay animations.
|
|
51
|
-
* - runAfterInteractions(): run code later, without delaying active animations.
|
|
52
|
-
*
|
|
53
|
-
* The touch handling system considers one or more active touches to be an
|
|
54
|
-
* 'interaction' and will delay `runAfterInteractions()` callbacks until all
|
|
55
|
-
* touches have ended or been cancelled.
|
|
56
|
-
*
|
|
57
|
-
* InteractionManager also allows applications to register animations by
|
|
58
|
-
* creating an interaction 'handle' on animation start, and clearing it upon
|
|
59
|
-
* completion:
|
|
60
|
-
*
|
|
61
|
-
* ```
|
|
62
|
-
* var handle = InteractionManager.createInteractionHandle();
|
|
63
|
-
* // run animation... (`runAfterInteractions` tasks are queued)
|
|
64
|
-
* // later, on animation completion:
|
|
65
|
-
* InteractionManager.clearInteractionHandle(handle);
|
|
66
|
-
* // queued tasks run if all handles were cleared
|
|
67
|
-
* ```
|
|
68
|
-
*
|
|
69
|
-
* `runAfterInteractions` takes either a plain callback function, or a
|
|
70
|
-
* `PromiseTask` object with a `gen` method that returns a `Promise`. If a
|
|
71
|
-
* `PromiseTask` is supplied, then it is fully resolved (including asynchronous
|
|
72
|
-
* dependencies that also schedule more tasks via `runAfterInteractions`) before
|
|
73
|
-
* starting on the next task that might have been queued up synchronously
|
|
74
|
-
* earlier.
|
|
75
|
-
*
|
|
76
|
-
* By default, queued tasks are executed together in a loop in one
|
|
77
|
-
* `setImmediate` batch. If `setDeadline` is called with a positive number, then
|
|
78
|
-
* tasks will only be executed until the deadline (in terms of js event loop run
|
|
79
|
-
* time) approaches, at which point execution will yield via setTimeout,
|
|
80
|
-
* allowing events such as touches to start interactions and block queued tasks
|
|
81
|
-
* from executing, making apps more responsive.
|
|
82
|
-
*/
|
|
83
33
|
const InteractionManagerImpl = {
|
|
84
34
|
Events: {
|
|
85
35
|
interactionStart: 'interactionStart',
|
|
@@ -123,7 +73,9 @@ const InteractionManagerImpl = {
|
|
|
123
73
|
* Notify manager that an interaction has started.
|
|
124
74
|
*/
|
|
125
75
|
createInteractionHandle(): Handle {
|
|
126
|
-
|
|
76
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
77
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
78
|
+
DEBUG && console.log('InteractionManager: create interaction handle');
|
|
127
79
|
_scheduleUpdate();
|
|
128
80
|
const handle = ++_inc;
|
|
129
81
|
_addInteractionSet.add(handle);
|
|
@@ -134,7 +86,9 @@ const InteractionManagerImpl = {
|
|
|
134
86
|
* Notify manager that an interaction has completed.
|
|
135
87
|
*/
|
|
136
88
|
clearInteractionHandle(handle: Handle) {
|
|
137
|
-
|
|
89
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
90
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
91
|
+
DEBUG && console.log('InteractionManager: clear interaction handle');
|
|
138
92
|
invariant(!!handle, 'InteractionManager: Must provide a handle to clear.');
|
|
139
93
|
_scheduleUpdate();
|
|
140
94
|
_addInteractionSet.delete(handle);
|
|
@@ -194,9 +148,17 @@ function _processUpdate() {
|
|
|
194
148
|
|
|
195
149
|
if (interactionCount !== 0 && nextInteractionCount === 0) {
|
|
196
150
|
// transition from 1+ --> 0 interactions
|
|
151
|
+
/* $FlowFixMe[prop-missing] Natural Inference rollout. See
|
|
152
|
+
* https://fburl.com/workplace/6291gfvu */
|
|
153
|
+
/* $FlowFixMe[invalid-computed-prop] Natural Inference rollout. See
|
|
154
|
+
* https://fburl.com/workplace/6291gfvu */
|
|
197
155
|
_emitter.emit(InteractionManager.Events.interactionComplete);
|
|
198
156
|
} else if (interactionCount === 0 && nextInteractionCount !== 0) {
|
|
199
157
|
// transition from 0 --> 1+ interactions
|
|
158
|
+
/* $FlowFixMe[prop-missing] Natural Inference rollout. See
|
|
159
|
+
* https://fburl.com/workplace/6291gfvu */
|
|
160
|
+
/* $FlowFixMe[invalid-computed-prop] Natural Inference rollout. See
|
|
161
|
+
* https://fburl.com/workplace/6291gfvu */
|
|
200
162
|
_emitter.emit(InteractionManager.Events.interactionStart);
|
|
201
163
|
}
|
|
202
164
|
|
|
@@ -218,9 +180,61 @@ function _processUpdate() {
|
|
|
218
180
|
_deleteInteractionSet.clear();
|
|
219
181
|
}
|
|
220
182
|
|
|
183
|
+
/**
|
|
184
|
+
* InteractionManager allows long-running work to be scheduled after any
|
|
185
|
+
* interactions/animations have completed. In particular, this allows JavaScript
|
|
186
|
+
* animations to run smoothly.
|
|
187
|
+
*
|
|
188
|
+
* Applications can schedule tasks to run after interactions with the following:
|
|
189
|
+
*
|
|
190
|
+
* ```
|
|
191
|
+
* InteractionManager.runAfterInteractions(() => {
|
|
192
|
+
* // ...long-running synchronous task...
|
|
193
|
+
* });
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* Compare this to other scheduling alternatives:
|
|
197
|
+
*
|
|
198
|
+
* - requestAnimationFrame(): for code that animates a view over time.
|
|
199
|
+
* - setImmediate/setTimeout(): run code later, note this may delay animations.
|
|
200
|
+
* - runAfterInteractions(): run code later, without delaying active animations.
|
|
201
|
+
*
|
|
202
|
+
* The touch handling system considers one or more active touches to be an
|
|
203
|
+
* 'interaction' and will delay `runAfterInteractions()` callbacks until all
|
|
204
|
+
* touches have ended or been cancelled.
|
|
205
|
+
*
|
|
206
|
+
* InteractionManager also allows applications to register animations by
|
|
207
|
+
* creating an interaction 'handle' on animation start, and clearing it upon
|
|
208
|
+
* completion:
|
|
209
|
+
*
|
|
210
|
+
* ```
|
|
211
|
+
* var handle = InteractionManager.createInteractionHandle();
|
|
212
|
+
* // run animation... (`runAfterInteractions` tasks are queued)
|
|
213
|
+
* // later, on animation completion:
|
|
214
|
+
* InteractionManager.clearInteractionHandle(handle);
|
|
215
|
+
* // queued tasks run if all handles were cleared
|
|
216
|
+
* ```
|
|
217
|
+
*
|
|
218
|
+
* `runAfterInteractions` takes either a plain callback function, or a
|
|
219
|
+
* `PromiseTask` object with a `gen` method that returns a `Promise`. If a
|
|
220
|
+
* `PromiseTask` is supplied, then it is fully resolved (including asynchronous
|
|
221
|
+
* dependencies that also schedule more tasks via `runAfterInteractions`) before
|
|
222
|
+
* starting on the next task that might have been queued up synchronously
|
|
223
|
+
* earlier.
|
|
224
|
+
*
|
|
225
|
+
* By default, queued tasks are executed together in a loop in one
|
|
226
|
+
* `setImmediate` batch. If `setDeadline` is called with a positive number, then
|
|
227
|
+
* tasks will only be executed until the deadline (in terms of js event loop run
|
|
228
|
+
* time) approaches, at which point execution will yield via setTimeout,
|
|
229
|
+
* allowing events such as touches to start interactions and block queued tasks
|
|
230
|
+
* from executing, making apps more responsive.
|
|
231
|
+
*
|
|
232
|
+
* @deprecated
|
|
233
|
+
*/
|
|
221
234
|
const InteractionManager = (
|
|
222
235
|
ReactNativeFeatureFlags.disableInteractionManager()
|
|
223
|
-
?
|
|
236
|
+
? // $FlowFixMe[incompatible-variance]
|
|
237
|
+
require('./InteractionManagerStub').default
|
|
224
238
|
: InteractionManagerImpl
|
|
225
239
|
) as typeof InteractionManagerImpl;
|
|
226
240
|
|
|
@@ -4,13 +4,12 @@
|
|
|
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
|
-
* @format
|
|
8
7
|
* @flow strict
|
|
8
|
+
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const infoLog = require('../Utilities/infoLog').default;
|
|
14
13
|
const invariant = require('invariant');
|
|
15
14
|
|
|
16
15
|
export type SimpleTask = {
|
|
@@ -100,10 +99,14 @@ class TaskQueue {
|
|
|
100
99
|
const task = queue.shift();
|
|
101
100
|
try {
|
|
102
101
|
if (typeof task === 'object' && task.gen) {
|
|
103
|
-
|
|
102
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
103
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
104
|
+
DEBUG && console.log('TaskQueue: genPromise for task ' + task.name);
|
|
104
105
|
this._genPromise(task);
|
|
105
106
|
} else if (typeof task === 'object' && task.run) {
|
|
106
|
-
|
|
107
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
108
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
109
|
+
DEBUG && console.log('TaskQueue: run task ' + task.name);
|
|
107
110
|
task.run();
|
|
108
111
|
} else {
|
|
109
112
|
invariant(
|
|
@@ -111,7 +114,9 @@ class TaskQueue {
|
|
|
111
114
|
'Expected Function, SimpleTask, or PromiseTask, but got:\n' +
|
|
112
115
|
JSON.stringify(task, null, 2),
|
|
113
116
|
);
|
|
114
|
-
|
|
117
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
118
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
119
|
+
DEBUG && console.log('TaskQueue: run anonymous task');
|
|
115
120
|
task();
|
|
116
121
|
}
|
|
117
122
|
} catch (e) {
|
|
@@ -140,8 +145,10 @@ class TaskQueue {
|
|
|
140
145
|
this._queueStack.length > 1
|
|
141
146
|
) {
|
|
142
147
|
this._queueStack.pop();
|
|
148
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
149
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
143
150
|
DEBUG &&
|
|
144
|
-
|
|
151
|
+
console.log('TaskQueue: popped queue: ', {
|
|
145
152
|
stackIdx,
|
|
146
153
|
queueStackSize: this._queueStack.length,
|
|
147
154
|
});
|
|
@@ -159,13 +166,19 @@ class TaskQueue {
|
|
|
159
166
|
this._queueStack.push({tasks: [], popable: false});
|
|
160
167
|
const stackIdx = this._queueStack.length - 1;
|
|
161
168
|
const stackItem = this._queueStack[stackIdx];
|
|
162
|
-
|
|
163
|
-
|
|
169
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
170
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
171
|
+
DEBUG && console.log('TaskQueue: push new queue: ', {stackIdx});
|
|
172
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
173
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
174
|
+
DEBUG && console.log('TaskQueue: exec gen task ' + task.name);
|
|
164
175
|
task
|
|
165
176
|
.gen()
|
|
166
177
|
.then(() => {
|
|
178
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
179
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
167
180
|
DEBUG &&
|
|
168
|
-
|
|
181
|
+
console.log('TaskQueue: onThen for gen task ' + task.name, {
|
|
169
182
|
stackIdx,
|
|
170
183
|
queueStackSize: this._queueStack.length,
|
|
171
184
|
});
|