react-native-windows 0.74.11 → 0.75.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 +8 -2
- package/Common/Common.vcxproj +8 -0
- package/Common/Utilities.cpp +2 -2
- package/Directory.Build.targets +5 -0
- package/Folly/Folly.vcxproj +10 -2
- package/Folly/Folly.vcxproj.filters +0 -7
- package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
- package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
- package/Libraries/Animated/AnimatedImplementation.js +2 -0
- package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
- package/Libraries/Animated/createAnimatedComponent.js +10 -4
- package/Libraries/Animated/useAnimatedProps.js +56 -28
- package/Libraries/BatchedBridge/MessageQueue.js +1 -0
- package/Libraries/Components/Button.js +10 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
- package/Libraries/Components/Flyout/Flyout.js +10 -10
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
- package/Libraries/Components/Pressable/Pressable.js +13 -6
- package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
- package/Libraries/Components/ScrollView/ScrollView.js +109 -29
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
- package/Libraries/Components/StatusBar/StatusBar.js +1 -21
- package/Libraries/Components/Switch/Switch.windows.js +2 -0
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
- package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
- package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
- package/Libraries/Components/TextInput/TextInput.js +14 -70
- package/Libraries/Components/TextInput/TextInput.windows.js +15 -72
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
- package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.js +0 -11
- package/Libraries/Components/View/View.windows.js +0 -11
- package/Libraries/Components/View/ViewAccessibility.js +4 -4
- package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
- package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
- package/Libraries/Components/View/ViewPropTypes.js +7 -0
- package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
- package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
- package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
- package/Libraries/Core/ErrorHandlers.js +116 -0
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpDeveloperTools.js +3 -1
- package/Libraries/Core/setUpPerformance.js +6 -4
- package/Libraries/Core/setUpReactDevTools.js +70 -10
- package/Libraries/Core/setUpTimers.js +50 -31
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
- package/Libraries/Image/Image.android.js +23 -13
- package/Libraries/Image/Image.d.ts +14 -15
- package/Libraries/Image/Image.ios.js +21 -11
- package/Libraries/Image/Image.windows.js +21 -11
- package/Libraries/Image/ImageProps.js +16 -5
- package/Libraries/Image/ImageTypes.flow.js +7 -2
- package/Libraries/Image/ImageUtils.js +1 -0
- package/Libraries/Image/ImageViewNativeComponent.js +2 -1
- package/Libraries/Inspector/ElementBox.js +6 -3
- package/Libraries/Inspector/ElementProperties.js +1 -1
- package/Libraries/Interaction/TouchHistoryMath.js +4 -4
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
- package/Libraries/JSInspector/NetworkAgent.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +39 -29
- package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
- package/Libraries/LogBox/LogBox.js +29 -12
- package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
- package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
- package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
- package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
- package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
- package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
- package/Libraries/Network/XMLHttpRequest.js +5 -1
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
- package/Libraries/Pressability/Pressability.js +3 -51
- package/Libraries/Pressability/Pressability.windows.js +3 -51
- package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
- package/Libraries/ReactNative/AppRegistry.js +2 -4
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
- package/Libraries/ReactNative/FabricUIManager.js +0 -51
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
- package/Libraries/ReactNative/RendererImplementation.js +20 -2
- package/Libraries/ReactNative/UIManager.d.ts +0 -21
- package/Libraries/ReactNative/UIManagerProperties.js +0 -3
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
- package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
- package/Libraries/Renderer/shims/ReactFabric.js +2 -2
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.d.ts +16 -10
- package/Libraries/Share/Share.js +14 -15
- package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -10
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
- package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
- package/Libraries/StyleSheet/flattenStyle.js +1 -0
- package/Libraries/StyleSheet/processFilter.js +132 -0
- package/Libraries/StyleSheet/processTransform.js +18 -3
- package/Libraries/Text/Text.js +151 -128
- package/Libraries/Text/Text.windows.js +144 -127
- package/Libraries/Text/TextNativeComponent.js +5 -4
- package/Libraries/Text/TextProps.js +6 -6
- package/Libraries/Text/TextProps.windows.js +6 -6
- package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
- package/Libraries/Types/CodegenTypes.js +3 -0
- package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
- package/Libraries/Utilities/Dimensions.js +1 -0
- package/Libraries/Utilities/HMRClient.js +36 -8
- package/Libraries/Utilities/HMRClientProdShim.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
- package/Libraries/Utilities/Platform.android.js +4 -4
- package/Libraries/Utilities/RCTLog.js +1 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
- package/Libraries/__tests__/ViewWindows-test.js +6 -6
- package/Libraries/promiseRejectionTrackingOptions.js +1 -0
- package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
- package/Microsoft.ReactNative/ComponentView.idl +0 -17
- package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
- package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +1 -4
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +0 -10
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +0 -3
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +29 -45
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +1 -3
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -12
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
- package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
- package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -18
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -5
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -16
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
- package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
- package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
- package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
- package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -17
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/Timer.idl +1 -3
- package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/packages.lock.json +45 -72
- package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
- package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
- package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
- package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
- package/PropertySheets/ARM64EC.props +13 -0
- package/PropertySheets/Application/ARM64EC.props +13 -0
- package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/JSEngine.props +2 -0
- package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
- package/README.md +21 -21
- package/ReactCommon/ReactCommon.vcxproj +11 -1
- package/ReactCommon/ReactCommon.vcxproj.filters +19 -12
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
- package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +4 -0
- package/Scripts/rnw-dependencies.ps1 +36 -23
- package/Shared/HermesRuntimeHolder.cpp +19 -1
- package/Shared/HermesRuntimeHolder.h +8 -1
- package/Shared/HermesSamplingProfiler.cpp +1 -2
- package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
- package/Shared/OInstance.cpp +1 -2
- package/Shared/Shared.vcxitems +21 -15
- package/Shared/Shared.vcxitems.filters +8 -3
- package/Shared/Threading/BatchingQueueThread.cpp +6 -2
- package/Shared/Threading/BatchingQueueThread.h +2 -2
- package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
- package/codegen/NativeAppStateSpec.g.h +8 -8
- package/codegen/NativeBlobModuleSpec.g.h +0 -10
- package/codegen/NativeDOMSpec.g.h +136 -0
- package/codegen/NativeDevSettingsSpec.g.h +11 -5
- package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
- package/codegen/NativeMicrotasksSpec.g.h +34 -0
- package/codegen/NativePerformanceSpec.g.h +35 -7
- package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
- package/codegen/NativeUIManagerSpec.g.h +5 -17
- package/codegen/react/components/rnwcore/Props.cpp +1 -1
- package/codegen/react/components/rnwcore/Props.h +16 -12
- package/codegen/react/components/rnwcore/States.h +0 -26
- package/codegen/rnwcoreJSI-generated.cpp +688 -463
- package/codegen/rnwcoreJSI.h +1374 -2867
- package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
- package/fmt/fmt.vcxproj +10 -2
- package/jest/mockComponent.js +7 -0
- package/jest/renderer.js +25 -14
- package/jest/setup.js +19 -13
- package/package.json +29 -27
- package/rn-get-polyfills.js +1 -0
- package/src/private/core/composeStyles.js +27 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
- package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
- package/src/private/specs/modules/NativeBlobModule.js +4 -2
- package/src/private/specs/modules/NativeDevSettings.js +1 -0
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
- package/src/private/specs/modules/NativeUIManager.js +0 -7
- package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
- package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
- package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
- package/src/private/webapis/performance/EventCounts.js +1 -1
- package/src/private/webapis/performance/MemoryInfo.js +9 -9
- package/src/private/webapis/performance/Performance.js +10 -56
- package/src/private/webapis/performance/PerformanceObserver.js +30 -22
- package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
- package/src/private/webapis/performance/UserTiming.js +63 -0
- package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
- package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
- package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
- package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
- package/stubs/glog/logging.h +1 -0
- package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
- package/template/cs-lib/proj/MyLib.csproj +1 -1
- package/template/metro.config.js +13 -2
- package/templates/cpp-app/template.config.js +1 -1
- package/templates/cpp-lib/example/metro.config.js +2 -2
- package/templates/cpp-lib/template.config.js +1 -1
- package/templates/old/generateWrapper.js +4 -1
- package/types/modules/globals.d.ts +4 -0
- package/Libraries/Lists/FlatList.windows.js +0 -717
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
- package/Libraries/Utilities/LoadingView.ios.js +0 -50
- package/Libraries/Utilities/LoadingView.js +0 -16
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2377
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.cpp +0 -140
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -92
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.cpp +0 -48
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -122
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -366
- package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
- package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
- package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
- package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
- package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
- package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
- package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
- package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
- package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
- package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
- package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
- package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
- package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
- package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
- package/template/metro.devMode.config.js +0 -56
- /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
|
@@ -23,7 +23,9 @@ import {
|
|
|
23
23
|
import {getImageSourcesFromImageProps} from './ImageSourceUtils';
|
|
24
24
|
import {convertObjectFitToResizeMode} from './ImageUtils';
|
|
25
25
|
import ImageViewNativeComponent from './ImageViewNativeComponent';
|
|
26
|
-
import NativeImageLoaderAndroid
|
|
26
|
+
import NativeImageLoaderAndroid, {
|
|
27
|
+
type ImageSize,
|
|
28
|
+
} from './NativeImageLoaderAndroid';
|
|
27
29
|
import resolveAssetSource from './resolveAssetSource';
|
|
28
30
|
import TextInlineImageNativeComponent from './TextInlineImageNativeComponent';
|
|
29
31
|
import * as React from 'react';
|
|
@@ -40,13 +42,15 @@ function generateRequestId() {
|
|
|
40
42
|
*/
|
|
41
43
|
function getSize(
|
|
42
44
|
url: string,
|
|
43
|
-
success
|
|
45
|
+
success?: (width: number, height: number) => void,
|
|
44
46
|
failure?: (error: mixed) => void,
|
|
45
|
-
): void {
|
|
46
|
-
NativeImageLoaderAndroid.getSize(url)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
): void | Promise<ImageSize> {
|
|
48
|
+
const promise = NativeImageLoaderAndroid.getSize(url);
|
|
49
|
+
if (typeof success !== 'function') {
|
|
50
|
+
return promise;
|
|
51
|
+
}
|
|
52
|
+
promise
|
|
53
|
+
.then(sizes => success(sizes.width, sizes.height))
|
|
50
54
|
.catch(
|
|
51
55
|
failure ||
|
|
52
56
|
function () {
|
|
@@ -64,13 +68,15 @@ function getSize(
|
|
|
64
68
|
function getSizeWithHeaders(
|
|
65
69
|
url: string,
|
|
66
70
|
headers: {[string]: string, ...},
|
|
67
|
-
success
|
|
71
|
+
success?: (width: number, height: number) => void,
|
|
68
72
|
failure?: (error: mixed) => void,
|
|
69
|
-
): void {
|
|
70
|
-
NativeImageLoaderAndroid.getSizeWithHeaders(url, headers)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
): void | Promise<ImageSize> {
|
|
74
|
+
const promise = NativeImageLoaderAndroid.getSizeWithHeaders(url, headers);
|
|
75
|
+
if (typeof success !== 'function') {
|
|
76
|
+
return promise;
|
|
77
|
+
}
|
|
78
|
+
promise
|
|
79
|
+
.then(sizes => success(sizes.width, sizes.height))
|
|
74
80
|
.catch(
|
|
75
81
|
failure ||
|
|
76
82
|
function () {
|
|
@@ -171,7 +177,11 @@ let BaseImage: AbstractImageAndroid = React.forwardRef(
|
|
|
171
177
|
...restProps,
|
|
172
178
|
style,
|
|
173
179
|
shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),
|
|
180
|
+
// Both iOS and C++ sides expect to have "source" prop, whereas on Android it's "src"
|
|
181
|
+
// (for historical reasons). So in the latter case we populate both "src" and "source",
|
|
182
|
+
// in order to have a better alignment between platforms in the future.
|
|
174
183
|
src: sources,
|
|
184
|
+
source: sources,
|
|
175
185
|
/* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found
|
|
176
186
|
* when making Flow check .android.js files. */
|
|
177
187
|
headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),
|
|
@@ -325,20 +325,31 @@ export interface ImageProps extends ImagePropsBase {
|
|
|
325
325
|
style?: StyleProp<ImageStyle> | undefined;
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
+
export interface ImageSize {
|
|
329
|
+
width: number;
|
|
330
|
+
height: number;
|
|
331
|
+
}
|
|
332
|
+
|
|
328
333
|
declare class ImageComponent extends React.Component<ImageProps> {}
|
|
329
334
|
declare const ImageBase: Constructor<NativeMethods> & typeof ImageComponent;
|
|
330
335
|
export class Image extends ImageBase {
|
|
336
|
+
static getSize(uri: string): Promise<ImageSize>;
|
|
331
337
|
static getSize(
|
|
332
338
|
uri: string,
|
|
333
339
|
success: (width: number, height: number) => void,
|
|
334
340
|
failure?: (error: any) => void,
|
|
335
|
-
):
|
|
341
|
+
): void;
|
|
342
|
+
|
|
343
|
+
static getSizeWithHeaders(
|
|
344
|
+
uri: string,
|
|
345
|
+
headers: {[index: string]: string},
|
|
346
|
+
): Promise<ImageSize>;
|
|
336
347
|
static getSizeWithHeaders(
|
|
337
348
|
uri: string,
|
|
338
349
|
headers: {[index: string]: string},
|
|
339
350
|
success: (width: number, height: number) => void,
|
|
340
351
|
failure?: (error: any) => void,
|
|
341
|
-
):
|
|
352
|
+
): void;
|
|
342
353
|
static prefetch(url: string): Promise<boolean>;
|
|
343
354
|
static prefetchWithMetadata(
|
|
344
355
|
url: string,
|
|
@@ -368,16 +379,4 @@ export interface ImageBackgroundProps extends ImagePropsBase {
|
|
|
368
379
|
declare class ImageBackgroundComponent extends React.Component<ImageBackgroundProps> {}
|
|
369
380
|
declare const ImageBackgroundBase: Constructor<NativeMethods> &
|
|
370
381
|
typeof ImageBackgroundComponent;
|
|
371
|
-
export class ImageBackground extends ImageBackgroundBase {
|
|
372
|
-
resizeMode: ImageResizeMode;
|
|
373
|
-
getSize(
|
|
374
|
-
uri: string,
|
|
375
|
-
success: (width: number, height: number) => void,
|
|
376
|
-
failure: (error: any) => void,
|
|
377
|
-
): any;
|
|
378
|
-
prefetch(url: string): any;
|
|
379
|
-
abortPrefetch?(requestId: number): void;
|
|
380
|
-
queryCache?(
|
|
381
|
-
urls: string[],
|
|
382
|
-
): Promise<{[url: string]: 'memory' | 'disk' | 'disk/memory'}>;
|
|
383
|
-
}
|
|
382
|
+
export class ImageBackground extends ImageBackgroundBase {}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type {ImageStyle, ImageStyleProp} from '../StyleSheet/StyleSheet';
|
|
12
12
|
import type {RootTag} from '../Types/RootTagTypes';
|
|
13
13
|
import type {AbstractImageIOS, ImageIOS} from './ImageTypes.flow';
|
|
14
|
+
import type {ImageSize} from './NativeImageLoaderAndroid';
|
|
14
15
|
|
|
15
16
|
import {createRootTag} from '../ReactNative/RootTag';
|
|
16
17
|
import flattenStyle from '../StyleSheet/flattenStyle';
|
|
@@ -29,15 +30,22 @@ import * as React from 'react';
|
|
|
29
30
|
|
|
30
31
|
function getSize(
|
|
31
32
|
uri: string,
|
|
32
|
-
success
|
|
33
|
+
success?: (width: number, height: number) => void,
|
|
33
34
|
failure?: (error: mixed) => void,
|
|
34
|
-
): void {
|
|
35
|
-
NativeImageLoaderIOS.getSize(uri)
|
|
36
|
-
|
|
35
|
+
): void | Promise<ImageSize> {
|
|
36
|
+
const promise = NativeImageLoaderIOS.getSize(uri).then(([width, height]) => ({
|
|
37
|
+
width,
|
|
38
|
+
height,
|
|
39
|
+
}));
|
|
40
|
+
if (typeof success !== 'function') {
|
|
41
|
+
return promise;
|
|
42
|
+
}
|
|
43
|
+
promise
|
|
44
|
+
.then(sizes => success(sizes.width, sizes.height))
|
|
37
45
|
.catch(
|
|
38
46
|
failure ||
|
|
39
47
|
function () {
|
|
40
|
-
console.warn('Failed to get size for image ' + uri);
|
|
48
|
+
console.warn('Failed to get size for image: ' + uri);
|
|
41
49
|
},
|
|
42
50
|
);
|
|
43
51
|
}
|
|
@@ -45,13 +53,15 @@ function getSize(
|
|
|
45
53
|
function getSizeWithHeaders(
|
|
46
54
|
uri: string,
|
|
47
55
|
headers: {[string]: string, ...},
|
|
48
|
-
success
|
|
56
|
+
success?: (width: number, height: number) => void,
|
|
49
57
|
failure?: (error: mixed) => void,
|
|
50
|
-
): void {
|
|
51
|
-
NativeImageLoaderIOS.getSizeWithHeaders(uri, headers)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
58
|
+
): void | Promise<ImageSize> {
|
|
59
|
+
const promise = NativeImageLoaderIOS.getSizeWithHeaders(uri, headers);
|
|
60
|
+
if (typeof success !== 'function') {
|
|
61
|
+
return promise;
|
|
62
|
+
}
|
|
63
|
+
promise
|
|
64
|
+
.then(sizes => success(sizes.width, sizes.height))
|
|
55
65
|
.catch(
|
|
56
66
|
failure ||
|
|
57
67
|
function () {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type {ImageStyle, ImageStyleProp} from '../StyleSheet/StyleSheet';
|
|
12
12
|
import type {RootTag} from '../Types/RootTagTypes';
|
|
13
13
|
import type {AbstractImageIOS, ImageIOS} from './ImageTypes.flow';
|
|
14
|
+
import type {ImageSize} from './NativeImageLoaderAndroid';
|
|
14
15
|
|
|
15
16
|
import {createRootTag} from '../ReactNative/RootTag';
|
|
16
17
|
import TextAncestor from '../Text/TextAncestor'; // [Windows]
|
|
@@ -31,15 +32,22 @@ import * as React from 'react';
|
|
|
31
32
|
|
|
32
33
|
function getSize(
|
|
33
34
|
uri: string,
|
|
34
|
-
success
|
|
35
|
+
success?: (width: number, height: number) => void,
|
|
35
36
|
failure?: (error: mixed) => void,
|
|
36
|
-
): void {
|
|
37
|
-
NativeImageLoaderIOS.getSize(uri)
|
|
38
|
-
|
|
37
|
+
): void | Promise<ImageSize> {
|
|
38
|
+
const promise = NativeImageLoaderIOS.getSize(uri).then(([width, height]) => ({
|
|
39
|
+
width,
|
|
40
|
+
height,
|
|
41
|
+
}));
|
|
42
|
+
if (typeof success !== 'function') {
|
|
43
|
+
return promise;
|
|
44
|
+
}
|
|
45
|
+
promise
|
|
46
|
+
.then(sizes => success(sizes.width, sizes.height))
|
|
39
47
|
.catch(
|
|
40
48
|
failure ||
|
|
41
49
|
function () {
|
|
42
|
-
console.warn('Failed to get size for image ' + uri);
|
|
50
|
+
console.warn('Failed to get size for image: ' + uri);
|
|
43
51
|
},
|
|
44
52
|
);
|
|
45
53
|
}
|
|
@@ -47,13 +55,15 @@ function getSize(
|
|
|
47
55
|
function getSizeWithHeaders(
|
|
48
56
|
uri: string,
|
|
49
57
|
headers: {[string]: string, ...},
|
|
50
|
-
success
|
|
58
|
+
success?: (width: number, height: number) => void,
|
|
51
59
|
failure?: (error: mixed) => void,
|
|
52
|
-
): void {
|
|
53
|
-
NativeImageLoaderIOS.getSizeWithHeaders(uri, headers)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
60
|
+
): void | Promise<ImageSize> {
|
|
61
|
+
const promise = NativeImageLoaderIOS.getSizeWithHeaders(uri, headers);
|
|
62
|
+
if (typeof success !== 'function') {
|
|
63
|
+
return promise;
|
|
64
|
+
}
|
|
65
|
+
promise
|
|
66
|
+
.then(sizes => success(sizes.width, sizes.height))
|
|
57
67
|
.catch(
|
|
58
68
|
failure ||
|
|
59
69
|
function () {
|
|
@@ -59,6 +59,22 @@ type AndroidImageProps = $ReadOnly<{|
|
|
|
59
59
|
loadingIndicatorSource?: ?(number | $ReadOnly<{|uri: string|}>),
|
|
60
60
|
progressiveRenderingEnabled?: ?boolean,
|
|
61
61
|
fadeDuration?: ?number,
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The mechanism that should be used to resize the image when the image's
|
|
65
|
+
* dimensions differ from the image view's dimensions. Defaults to `'auto'`.
|
|
66
|
+
* See https://reactnative.dev/docs/image#resizemethod-android
|
|
67
|
+
*/
|
|
68
|
+
resizeMethod?: ?('auto' | 'resize' | 'scale'),
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* When the `resizeMethod` is set to `resize`, the destination dimensions are
|
|
72
|
+
* multiplied by this value. The `scale` method is used to perform the
|
|
73
|
+
* remainder of the resize.
|
|
74
|
+
* This is used to produce higher quality images when resizing to small dimensions.
|
|
75
|
+
* Defaults to 1.0.
|
|
76
|
+
*/
|
|
77
|
+
resizeMultiplier?: ?number,
|
|
62
78
|
|}>;
|
|
63
79
|
|
|
64
80
|
export type ImageProps = {|
|
|
@@ -183,11 +199,6 @@ export type ImageProps = {|
|
|
|
183
199
|
*/
|
|
184
200
|
onLoadStart?: ?() => void,
|
|
185
201
|
|
|
186
|
-
/**
|
|
187
|
-
* See https://reactnative.dev/docs/image#resizemethod
|
|
188
|
-
*/
|
|
189
|
-
resizeMethod?: ?('auto' | 'resize' | 'scale'),
|
|
190
|
-
|
|
191
202
|
/**
|
|
192
203
|
* The image source (either a remote URL or a local file resource).
|
|
193
204
|
*
|
|
@@ -18,12 +18,17 @@ import typeof TextInlineImageNativeComponent from './TextInlineImageNativeCompon
|
|
|
18
18
|
import * as React from 'react';
|
|
19
19
|
|
|
20
20
|
type ImageComponentStaticsIOS = $ReadOnly<{
|
|
21
|
-
getSize:
|
|
21
|
+
getSize(uri: string): Promise<{width: number, height: number}>,
|
|
22
|
+
getSize(
|
|
22
23
|
uri: string,
|
|
23
24
|
success: (width: number, height: number) => void,
|
|
24
25
|
failure?: (error: mixed) => void,
|
|
25
|
-
)
|
|
26
|
+
): void,
|
|
26
27
|
|
|
28
|
+
getSizeWithHeaders(
|
|
29
|
+
uri: string,
|
|
30
|
+
headers: {[string]: string, ...},
|
|
31
|
+
): Promise<{width: number, height: number}>,
|
|
27
32
|
getSizeWithHeaders(
|
|
28
33
|
uri: string,
|
|
29
34
|
headers: {[string]: string, ...},
|
|
@@ -82,13 +82,14 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
82
82
|
validAttributes: {
|
|
83
83
|
blurRadius: true,
|
|
84
84
|
internal_analyticTag: true,
|
|
85
|
+
resizeMethod: true,
|
|
85
86
|
resizeMode: true,
|
|
87
|
+
resizeMultiplier: true,
|
|
86
88
|
tintColor: {
|
|
87
89
|
process: require('../StyleSheet/processColor').default,
|
|
88
90
|
},
|
|
89
91
|
borderBottomLeftRadius: true,
|
|
90
92
|
borderTopLeftRadius: true,
|
|
91
|
-
resizeMethod: true,
|
|
92
93
|
src: true,
|
|
93
94
|
// NOTE: New Architecture expects this to be called `source`,
|
|
94
95
|
// regardless of the platform, therefore propagate it as well.
|
|
@@ -20,10 +20,9 @@ const React = require('react');
|
|
|
20
20
|
|
|
21
21
|
class ElementBox extends React.Component<$FlowFixMeProps> {
|
|
22
22
|
render(): React.Node {
|
|
23
|
-
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
24
23
|
const style = flattenStyle(this.props.style) || {};
|
|
25
|
-
let margin = resolveBoxStyle('margin', style);
|
|
26
|
-
let padding = resolveBoxStyle('padding', style);
|
|
24
|
+
let margin: ?$ReadOnly<Style> = resolveBoxStyle('margin', style);
|
|
25
|
+
let padding: ?$ReadOnly<Style> = resolveBoxStyle('padding', style);
|
|
27
26
|
|
|
28
27
|
const frameStyle = {...this.props.frame};
|
|
29
28
|
const contentStyle: {width: number, height: number} = {
|
|
@@ -122,13 +121,17 @@ function resolveSizeInPlace(
|
|
|
122
121
|
direction: string,
|
|
123
122
|
dimension: string,
|
|
124
123
|
) {
|
|
124
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
125
125
|
if (style[direction] !== null && typeof style[direction] === 'string') {
|
|
126
126
|
if (style[direction].indexOf('%') !== -1) {
|
|
127
127
|
// $FlowFixMe[prop-missing]
|
|
128
128
|
style[direction] =
|
|
129
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
129
130
|
(parseFloat(style[direction]) / 100.0) *
|
|
131
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
130
132
|
Dimensions.get('window')[dimension];
|
|
131
133
|
}
|
|
134
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
132
135
|
if (style[direction] === 'auto') {
|
|
133
136
|
// Ignore auto sizing in frame drawing due to complexity of correctly rendering this
|
|
134
137
|
// $FlowFixMe[prop-missing]
|
|
@@ -71,7 +71,7 @@ class ElementProperties extends React.Component<Props> {
|
|
|
71
71
|
<View style={styles.col}>
|
|
72
72
|
<StyleInspector style={style} />
|
|
73
73
|
</View>
|
|
74
|
-
|
|
74
|
+
<BoxInspector style={style} frame={this.props.frame} />
|
|
75
75
|
</View>
|
|
76
76
|
</View>
|
|
77
77
|
</TouchableWithoutFeedback>
|
|
@@ -48,10 +48,10 @@ const TouchHistoryMath = {
|
|
|
48
48
|
ofCurrent && isXAxis
|
|
49
49
|
? oneTouchData.currentPageX
|
|
50
50
|
: ofCurrent && !isXAxis
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
? oneTouchData.currentPageY
|
|
52
|
+
: !ofCurrent && isXAxis
|
|
53
|
+
? oneTouchData.previousPageX
|
|
54
|
+
: oneTouchData.previousPageY;
|
|
55
55
|
count = 1;
|
|
56
56
|
}
|
|
57
57
|
} else {
|
|
@@ -67,19 +67,11 @@ function setTargetForInstanceHandle(
|
|
|
67
67
|
instanceHandleToTargetMap.set(key, target);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
function unsetTargetForInstanceHandle(instanceHandle: mixed): void {
|
|
71
|
-
// $FlowExpectedError[incompatible-type] instanceHandle is typed as mixed but we know it's an object and we need it to be to use it as a key in a WeakMap.
|
|
72
|
-
const key: interface {} = instanceHandle;
|
|
73
|
-
instanceHandleToTargetMap.delete(key);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
70
|
// The mapping between ReactNativeElement and their corresponding shadow node
|
|
77
71
|
// also needs to be kept here because React removes the link when unmounting.
|
|
78
|
-
|
|
79
|
-
// from the target to unobserve.
|
|
80
|
-
const targetToShadowNodeAndInstanceHandleMap: WeakMap<
|
|
72
|
+
const targetToShadowNodeMap: WeakMap<
|
|
81
73
|
ReactNativeElement,
|
|
82
|
-
|
|
74
|
+
ReturnType<typeof getShadowNode>,
|
|
83
75
|
> = new WeakMap();
|
|
84
76
|
|
|
85
77
|
/**
|
|
@@ -163,12 +155,8 @@ export function observe({
|
|
|
163
155
|
// access it even after the instance handle has been unmounted.
|
|
164
156
|
setTargetForInstanceHandle(instanceHandle, target);
|
|
165
157
|
|
|
166
|
-
// Same for the mapping between the target and its shadow node
|
|
167
|
-
|
|
168
|
-
targetToShadowNodeAndInstanceHandleMap.set(target, [
|
|
169
|
-
targetShadowNode,
|
|
170
|
-
instanceHandle,
|
|
171
|
-
]);
|
|
158
|
+
// Same for the mapping between the target and its shadow node.
|
|
159
|
+
targetToShadowNodeMap.set(target, targetShadowNode);
|
|
172
160
|
|
|
173
161
|
if (!isConnected) {
|
|
174
162
|
NativeIntersectionObserver.connect(notifyIntersectionObservers);
|
|
@@ -201,26 +189,18 @@ export function unobserve(
|
|
|
201
189
|
return;
|
|
202
190
|
}
|
|
203
191
|
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
if (targetShadowNodeAndInstanceHandle == null) {
|
|
192
|
+
const targetShadowNode = targetToShadowNodeMap.get(target);
|
|
193
|
+
if (targetShadowNode == null) {
|
|
207
194
|
console.error(
|
|
208
195
|
'IntersectionObserverManager: could not find registration data for target',
|
|
209
196
|
);
|
|
210
197
|
return;
|
|
211
198
|
}
|
|
212
199
|
|
|
213
|
-
const [targetShadowNode, instanceHandle] = targetShadowNodeAndInstanceHandle;
|
|
214
|
-
|
|
215
200
|
NativeIntersectionObserver.unobserve(
|
|
216
201
|
intersectionObserverId,
|
|
217
202
|
targetShadowNode,
|
|
218
203
|
);
|
|
219
|
-
|
|
220
|
-
// We can guarantee we won't receive any more entries for this target,
|
|
221
|
-
// so we don't need to keep the mappings anymore.
|
|
222
|
-
unsetTargetForInstanceHandle(instanceHandle);
|
|
223
|
-
targetToShadowNodeAndInstanceHandleMap.delete(target);
|
|
224
204
|
}
|
|
225
205
|
|
|
226
206
|
/**
|
|
@@ -232,7 +232,7 @@ class Interceptor {
|
|
|
232
232
|
const event: LoadingFinishedEvent = {
|
|
233
233
|
requestId: String(id),
|
|
234
234
|
timestamp: JSInspector.getTimestamp(),
|
|
235
|
-
encodedDataLength
|
|
235
|
+
encodedDataLength,
|
|
236
236
|
};
|
|
237
237
|
this._agent.sendEvent('loadingFinished', event);
|
|
238
238
|
}
|
|
@@ -8,30 +8,32 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
('use strict');
|
|
12
|
-
|
|
13
11
|
import type {ExtendedError} from '../../Core/ExtendedError';
|
|
14
12
|
import type {LogLevel} from './LogBoxLog';
|
|
15
13
|
import type {
|
|
16
14
|
Category,
|
|
17
15
|
ComponentStack,
|
|
16
|
+
ComponentStackType,
|
|
18
17
|
ExtendedExceptionData,
|
|
19
18
|
Message,
|
|
20
19
|
} from './parseLogBoxLog';
|
|
21
20
|
|
|
22
21
|
import parseErrorStack from '../../Core/Devtools/parseErrorStack';
|
|
22
|
+
import NativeDevSettings from '../../NativeModules/specs/NativeDevSettings';
|
|
23
23
|
import NativeLogBox from '../../NativeModules/specs/NativeLogBox';
|
|
24
24
|
import LogBoxLog from './LogBoxLog';
|
|
25
25
|
import {parseLogBoxException} from './parseLogBoxLog';
|
|
26
26
|
import * as React from 'react';
|
|
27
|
+
|
|
27
28
|
export type LogBoxLogs = Set<LogBoxLog>;
|
|
28
|
-
export type LogData = $ReadOnly<{
|
|
29
|
+
export type LogData = $ReadOnly<{
|
|
29
30
|
level: LogLevel,
|
|
30
31
|
message: Message,
|
|
31
32
|
category: Category,
|
|
32
33
|
componentStack: ComponentStack,
|
|
34
|
+
componentStackType: ComponentStackType | null,
|
|
33
35
|
stack?: string,
|
|
34
|
-
|
|
36
|
+
}>;
|
|
35
37
|
|
|
36
38
|
export type Observer = (
|
|
37
39
|
$ReadOnly<{|
|
|
@@ -72,6 +74,7 @@ let logs: LogBoxLogs = new Set();
|
|
|
72
74
|
let updateTimeout: $FlowFixMe | null = null;
|
|
73
75
|
let _isDisabled = false;
|
|
74
76
|
let _selectedIndex = -1;
|
|
77
|
+
let hasShownFuseboxWarningsMigrationMessage = false;
|
|
75
78
|
|
|
76
79
|
let warningFilter: WarningFilter = function (format) {
|
|
77
80
|
return {
|
|
@@ -193,6 +196,11 @@ function appendNewLog(newLog: LogBoxLog) {
|
|
|
193
196
|
}
|
|
194
197
|
|
|
195
198
|
export function addLog(log: LogData): void {
|
|
199
|
+
if (log.level === 'warn' && global.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__) {
|
|
200
|
+
// Under Fusebox, don't report warnings to LogBox.
|
|
201
|
+
showFuseboxWarningsMigrationMessageOnce();
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
196
204
|
const errorForStackTrace = new Error();
|
|
197
205
|
|
|
198
206
|
// Parsing logs are expensive so we schedule this
|
|
@@ -209,6 +217,7 @@ export function addLog(log: LogData): void {
|
|
|
209
217
|
stack,
|
|
210
218
|
category: log.category,
|
|
211
219
|
componentStack: log.componentStack,
|
|
220
|
+
componentStackType: log.componentStackType || 'legacy',
|
|
212
221
|
}),
|
|
213
222
|
);
|
|
214
223
|
} catch (error) {
|
|
@@ -449,32 +458,33 @@ export function withSubscription(
|
|
|
449
458
|
this._subscription.unsubscribe();
|
|
450
459
|
}
|
|
451
460
|
}
|
|
452
|
-
|
|
453
|
-
_handleDismiss = (): void => {
|
|
454
|
-
// Here we handle the cases when the log is dismissed and it
|
|
455
|
-
// was either the last log, or when the current index
|
|
456
|
-
// is now outside the bounds of the log array.
|
|
457
|
-
const {selectedLogIndex, logs: stateLogs} = this.state;
|
|
458
|
-
const logsArray = Array.from(stateLogs);
|
|
459
|
-
if (selectedLogIndex != null) {
|
|
460
|
-
if (logsArray.length - 1 <= 0) {
|
|
461
|
-
setSelectedLog(-1);
|
|
462
|
-
} else if (selectedLogIndex >= logsArray.length - 1) {
|
|
463
|
-
setSelectedLog(selectedLogIndex - 1);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
dismiss(logsArray[selectedLogIndex]);
|
|
467
|
-
}
|
|
468
|
-
};
|
|
469
|
-
|
|
470
|
-
_handleMinimize = (): void => {
|
|
471
|
-
setSelectedLog(-1);
|
|
472
|
-
};
|
|
473
|
-
|
|
474
|
-
_handleSetSelectedLog = (index: number): void => {
|
|
475
|
-
setSelectedLog(index);
|
|
476
|
-
};
|
|
477
461
|
}
|
|
478
462
|
|
|
479
463
|
return LogBoxStateSubscription;
|
|
480
464
|
}
|
|
465
|
+
|
|
466
|
+
function showFuseboxWarningsMigrationMessageOnce() {
|
|
467
|
+
if (hasShownFuseboxWarningsMigrationMessage) {
|
|
468
|
+
return;
|
|
469
|
+
}
|
|
470
|
+
hasShownFuseboxWarningsMigrationMessage = true;
|
|
471
|
+
appendNewLog(
|
|
472
|
+
new LogBoxLog({
|
|
473
|
+
level: 'warn',
|
|
474
|
+
message: {
|
|
475
|
+
content: 'Open debugger to view warnings.',
|
|
476
|
+
substitutions: [],
|
|
477
|
+
},
|
|
478
|
+
isComponentError: false,
|
|
479
|
+
stack: [],
|
|
480
|
+
category: 'fusebox-warnings-migration',
|
|
481
|
+
componentStack: [],
|
|
482
|
+
onNotificationPress: () => {
|
|
483
|
+
if (NativeDevSettings.openDebugger) {
|
|
484
|
+
NativeDevSettings.openDebugger();
|
|
485
|
+
}
|
|
486
|
+
clearWarnings();
|
|
487
|
+
},
|
|
488
|
+
}),
|
|
489
|
+
);
|
|
490
|
+
}
|