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
|
@@ -125,15 +125,6 @@ inline Mso::Future<void> CompositionReactViewInstance::PostInUIQueue(TAction &&a
|
|
|
125
125
|
return promise.AsFuture();
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
void ApplyConstraints(
|
|
129
|
-
const winrt::Microsoft::ReactNative::LayoutConstraints &layoutConstraintsIn,
|
|
130
|
-
facebook::react::LayoutConstraints &layoutConstraintsOut) noexcept {
|
|
131
|
-
layoutConstraintsOut.minimumSize = {layoutConstraintsIn.MinimumSize.Width, layoutConstraintsIn.MinimumSize.Height};
|
|
132
|
-
layoutConstraintsOut.maximumSize = {layoutConstraintsIn.MaximumSize.Width, layoutConstraintsIn.MaximumSize.Height};
|
|
133
|
-
layoutConstraintsOut.layoutDirection =
|
|
134
|
-
static_cast<facebook::react::LayoutDirection>(layoutConstraintsIn.LayoutDirection);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
128
|
ReactNativeIsland::ReactNativeIsland() noexcept {}
|
|
138
129
|
|
|
139
130
|
#ifdef USE_WINUI3
|
|
@@ -145,7 +136,6 @@ ReactNativeIsland::~ReactNativeIsland() noexcept {
|
|
|
145
136
|
#ifdef USE_WINUI3
|
|
146
137
|
if (m_island && m_island.IsConnected()) {
|
|
147
138
|
m_island.AutomationProviderRequested(m_islandAutomationProviderRequestedToken);
|
|
148
|
-
m_island.StateChanged(m_islandStateChangedToken);
|
|
149
139
|
}
|
|
150
140
|
#endif
|
|
151
141
|
|
|
@@ -261,7 +251,6 @@ void ReactNativeIsland::ScaleFactor(float value) noexcept {
|
|
|
261
251
|
rootView.Scale({invScale, invScale, invScale});
|
|
262
252
|
}
|
|
263
253
|
UpdateRootVisualSize();
|
|
264
|
-
Arrange(m_layoutConstraints, m_viewportOffset);
|
|
265
254
|
}
|
|
266
255
|
}
|
|
267
256
|
|
|
@@ -426,6 +415,13 @@ void ReactNativeIsland::UpdateRootViewInternal() noexcept {
|
|
|
426
415
|
}
|
|
427
416
|
}
|
|
428
417
|
|
|
418
|
+
struct AutoMRE {
|
|
419
|
+
~AutoMRE() {
|
|
420
|
+
mre.Set();
|
|
421
|
+
}
|
|
422
|
+
Mso::ManualResetEvent mre;
|
|
423
|
+
};
|
|
424
|
+
|
|
429
425
|
void ReactNativeIsland::UninitRootView() noexcept {
|
|
430
426
|
if (!m_isInitialized) {
|
|
431
427
|
return;
|
|
@@ -442,8 +438,10 @@ void ReactNativeIsland::UninitRootView() noexcept {
|
|
|
442
438
|
// This is needed to ensure that the unmount JS logic is completed before the the instance is shutdown during
|
|
443
439
|
// instance destruction. Aligns with similar code in ReactInstanceWin::DetachRootView for paper Future: Instead this
|
|
444
440
|
// method should return a Promise, which should be resolved when the JS logic is complete.
|
|
441
|
+
// The task will auto set the event on destruction to ensure that the event is set if the JS Queue has already been
|
|
442
|
+
// shutdown
|
|
445
443
|
Mso::ManualResetEvent mre;
|
|
446
|
-
m_context.JSDispatcher().Post([
|
|
444
|
+
m_context.JSDispatcher().Post([autoMRE = std::make_unique<AutoMRE>(AutoMRE{mre})]() {});
|
|
447
445
|
mre.Wait();
|
|
448
446
|
|
|
449
447
|
// Paper version gives the JS thread time to finish executing - Is this needed?
|
|
@@ -482,14 +480,10 @@ void ReactNativeIsland::ShowInstanceLoaded() noexcept {
|
|
|
482
480
|
initProps = folly::dynamic::object();
|
|
483
481
|
}
|
|
484
482
|
initProps["concurrentRoot"] = true;
|
|
485
|
-
|
|
486
|
-
facebook::react::LayoutConstraints fbLayoutConstraints;
|
|
487
|
-
ApplyConstraints(m_layoutConstraints, fbLayoutConstraints);
|
|
488
|
-
|
|
489
483
|
uiManager->startSurface(
|
|
490
484
|
*this,
|
|
491
485
|
static_cast<facebook::react::SurfaceId>(m_rootTag),
|
|
492
|
-
|
|
486
|
+
m_layoutConstraints,
|
|
493
487
|
to_string(m_reactViewOptions.ComponentName()),
|
|
494
488
|
initProps);
|
|
495
489
|
|
|
@@ -506,21 +500,16 @@ facebook::react::AttributedStringBox CreateLoadingAttributedString() noexcept {
|
|
|
506
500
|
return facebook::react::AttributedStringBox{attributedString};
|
|
507
501
|
}
|
|
508
502
|
|
|
509
|
-
facebook::react::Size MeasureLoading(
|
|
510
|
-
const winrt::Microsoft::ReactNative::LayoutConstraints &layoutConstraints,
|
|
511
|
-
float scaleFactor) {
|
|
512
|
-
facebook::react::LayoutConstraints fbLayoutConstraints;
|
|
513
|
-
ApplyConstraints(layoutConstraints, fbLayoutConstraints);
|
|
514
|
-
|
|
503
|
+
facebook::react::Size MeasureLoading(const facebook::react::LayoutConstraints &layoutConstraints, float scaleFactor) {
|
|
515
504
|
auto attributedStringBox = CreateLoadingAttributedString();
|
|
516
505
|
winrt::com_ptr<::IDWriteTextLayout> textLayout;
|
|
517
506
|
facebook::react::TextLayoutManager::GetTextLayout(
|
|
518
|
-
attributedStringBox, {} /*paragraphAttributes*/,
|
|
507
|
+
attributedStringBox, {} /*paragraphAttributes*/, layoutConstraints, textLayout);
|
|
519
508
|
|
|
520
509
|
DWRITE_TEXT_METRICS tm;
|
|
521
|
-
textLayout->GetMetrics(&tm);
|
|
510
|
+
winrt::check_hresult(textLayout->GetMetrics(&tm));
|
|
522
511
|
|
|
523
|
-
return
|
|
512
|
+
return layoutConstraints.clamp(
|
|
524
513
|
{loadingActivityHorizontalOffset * scaleFactor + tm.width, loadingBarHeight * scaleFactor});
|
|
525
514
|
}
|
|
526
515
|
|
|
@@ -535,7 +524,7 @@ void ReactNativeIsland::SizeChanged(winrt::event_token const &token) noexcept {
|
|
|
535
524
|
}
|
|
536
525
|
|
|
537
526
|
struct RootViewSizeChangedEventArgs : RootViewSizeChangedEventArgsT<RootViewSizeChangedEventArgs> {
|
|
538
|
-
RootViewSizeChangedEventArgs(winrt::Windows::Foundation::Size size) : m_size(size) {}
|
|
527
|
+
RootViewSizeChangedEventArgs(const winrt::Windows::Foundation::Size &size) : m_size(size) {}
|
|
539
528
|
winrt::Windows::Foundation::Size Size() const noexcept {
|
|
540
529
|
return m_size;
|
|
541
530
|
}
|
|
@@ -645,6 +634,15 @@ void ReactNativeIsland::ShowInstanceLoading() noexcept {
|
|
|
645
634
|
InternalRootVisual().InsertAt(m_loadingVisual, m_hasRenderedVisual ? 1 : 0);
|
|
646
635
|
}
|
|
647
636
|
|
|
637
|
+
void ApplyConstraints(
|
|
638
|
+
const winrt::Microsoft::ReactNative::LayoutConstraints &layoutConstraintsIn,
|
|
639
|
+
facebook::react::LayoutConstraints &layoutConstraintsOut) noexcept {
|
|
640
|
+
layoutConstraintsOut.minimumSize = {layoutConstraintsIn.MinimumSize.Width, layoutConstraintsIn.MinimumSize.Height};
|
|
641
|
+
layoutConstraintsOut.maximumSize = {layoutConstraintsIn.MaximumSize.Width, layoutConstraintsIn.MaximumSize.Height};
|
|
642
|
+
layoutConstraintsOut.layoutDirection =
|
|
643
|
+
static_cast<facebook::react::LayoutDirection>(layoutConstraintsIn.LayoutDirection);
|
|
644
|
+
}
|
|
645
|
+
|
|
648
646
|
winrt::Windows::Foundation::Size ReactNativeIsland::Measure(
|
|
649
647
|
const winrt::Microsoft::ReactNative::LayoutConstraints &layoutConstraints,
|
|
650
648
|
const winrt::Windows::Foundation::Point &viewportOffset) const noexcept {
|
|
@@ -665,7 +663,7 @@ winrt::Windows::Foundation::Size ReactNativeIsland::Measure(
|
|
|
665
663
|
size = fabricuiManager->measureSurface(static_cast<facebook::react::SurfaceId>(m_rootTag), constraints, context);
|
|
666
664
|
}
|
|
667
665
|
} else if (m_loadingVisual) {
|
|
668
|
-
size = MeasureLoading(
|
|
666
|
+
size = MeasureLoading(constraints, m_scaleFactor);
|
|
669
667
|
}
|
|
670
668
|
|
|
671
669
|
auto clampedSize = constraints.clamp(size);
|
|
@@ -675,10 +673,7 @@ winrt::Windows::Foundation::Size ReactNativeIsland::Measure(
|
|
|
675
673
|
void ReactNativeIsland::Arrange(
|
|
676
674
|
const winrt::Microsoft::ReactNative::LayoutConstraints &layoutConstraints,
|
|
677
675
|
const winrt::Windows::Foundation::Point &viewportOffset) noexcept {
|
|
678
|
-
m_layoutConstraints
|
|
679
|
-
m_viewportOffset = viewportOffset;
|
|
680
|
-
facebook::react::LayoutConstraints fbLayoutConstraints;
|
|
681
|
-
ApplyConstraints(layoutConstraints, fbLayoutConstraints);
|
|
676
|
+
ApplyConstraints(layoutConstraints, m_layoutConstraints);
|
|
682
677
|
|
|
683
678
|
if (m_isInitialized && m_rootTag != -1) {
|
|
684
679
|
if (auto fabricuiManager = ::Microsoft::ReactNative::FabricUIManager::FromProperties(
|
|
@@ -689,11 +684,11 @@ void ReactNativeIsland::Arrange(
|
|
|
689
684
|
context.viewportOffset = {viewportOffset.X, viewportOffset.Y};
|
|
690
685
|
|
|
691
686
|
fabricuiManager->constraintSurfaceLayout(
|
|
692
|
-
static_cast<facebook::react::SurfaceId>(m_rootTag),
|
|
687
|
+
static_cast<facebook::react::SurfaceId>(m_rootTag), m_layoutConstraints, context);
|
|
693
688
|
}
|
|
694
689
|
} else if (m_loadingVisual) {
|
|
695
690
|
// TODO: Resize to align loading
|
|
696
|
-
auto s =
|
|
691
|
+
auto s = m_layoutConstraints.clamp(MeasureLoading(m_layoutConstraints, m_scaleFactor));
|
|
697
692
|
NotifySizeChanged();
|
|
698
693
|
}
|
|
699
694
|
}
|
|
@@ -743,17 +738,6 @@ winrt::Microsoft::UI::Content::ContentIsland ReactNativeIsland::Island() {
|
|
|
743
738
|
pThis->m_island = nullptr;
|
|
744
739
|
}
|
|
745
740
|
});
|
|
746
|
-
|
|
747
|
-
m_islandStateChangedToken =
|
|
748
|
-
m_island.StateChanged([weakThis = get_weak()](
|
|
749
|
-
winrt::Microsoft::UI::Content::ContentIsland const &island,
|
|
750
|
-
winrt::Microsoft::UI::Content::ContentIslandStateChangedEventArgs const &args) {
|
|
751
|
-
if (auto pThis = weakThis.get()) {
|
|
752
|
-
if (args.DidRasterizationScaleChange()) {
|
|
753
|
-
pThis->ScaleFactor(island.RasterizationScale());
|
|
754
|
-
}
|
|
755
|
-
}
|
|
756
|
-
});
|
|
757
741
|
}
|
|
758
742
|
return m_island;
|
|
759
743
|
}
|
|
@@ -125,7 +125,6 @@ struct ReactNativeIsland
|
|
|
125
125
|
winrt::Microsoft::UI::Content::ContentIsland m_island{nullptr};
|
|
126
126
|
winrt::event_token m_islandFrameworkClosedToken;
|
|
127
127
|
winrt::event_token m_islandAutomationProviderRequestedToken;
|
|
128
|
-
winrt::event_token m_islandStateChangedToken;
|
|
129
128
|
#endif
|
|
130
129
|
|
|
131
130
|
HWND m_hwnd{0};
|
|
@@ -148,8 +147,7 @@ struct ReactNativeIsland
|
|
|
148
147
|
winrt::Microsoft::ReactNative::Composition::ICustomResourceLoader m_resources{nullptr};
|
|
149
148
|
winrt::Microsoft::ReactNative::Composition::Theme m_theme{nullptr};
|
|
150
149
|
winrt::Microsoft::ReactNative::Composition::Theme::ThemeChanged_revoker m_themeChangedRevoker;
|
|
151
|
-
|
|
152
|
-
winrt::Windows::Foundation::Point m_viewportOffset{0, 0};
|
|
150
|
+
facebook::react::LayoutConstraints m_layoutConstraints;
|
|
153
151
|
winrt::event<winrt::Windows::Foundation::EventHandler<winrt::Microsoft::ReactNative::RootViewSizeChangedEventArgs>>
|
|
154
152
|
m_sizeChangedEvent;
|
|
155
153
|
|
|
@@ -1138,7 +1138,7 @@ winrt::Microsoft::ReactNative::Composition::Experimental::IVisual ScrollViewComp
|
|
|
1138
1138
|
updateStateWithContentOffset();
|
|
1139
1139
|
auto eventEmitter = GetEventEmitter();
|
|
1140
1140
|
if (eventEmitter) {
|
|
1141
|
-
facebook::react::
|
|
1141
|
+
facebook::react::ScrollViewEventEmitter::Metrics scrollMetrics;
|
|
1142
1142
|
scrollMetrics.containerSize.height = m_layoutMetrics.frame.size.height;
|
|
1143
1143
|
scrollMetrics.containerSize.width = m_layoutMetrics.frame.size.width;
|
|
1144
1144
|
scrollMetrics.contentOffset.x = args.Position().x / m_layoutMetrics.pointScaleFactor;
|
package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp
CHANGED
|
@@ -947,6 +947,10 @@ void WindowsTextInputComponentView::onGotFocus(
|
|
|
947
947
|
LRESULT lresult;
|
|
948
948
|
DrawBlock db(*this);
|
|
949
949
|
m_textServices->TxSendMessage(WM_SETFOCUS, 0, 0, &lresult);
|
|
950
|
+
|
|
951
|
+
if (windowsTextInputProps().clearTextOnFocus) {
|
|
952
|
+
m_textServices->TxSetText(L"");
|
|
953
|
+
}
|
|
950
954
|
}
|
|
951
955
|
}
|
|
952
956
|
|
|
@@ -1112,8 +1116,6 @@ void WindowsTextInputComponentView::updateState(
|
|
|
1112
1116
|
return;
|
|
1113
1117
|
}
|
|
1114
1118
|
|
|
1115
|
-
auto data = m_state->getData();
|
|
1116
|
-
|
|
1117
1119
|
if (!oldState) {
|
|
1118
1120
|
m_mostRecentEventCount = m_state->getData().mostRecentEventCount;
|
|
1119
1121
|
}
|
|
@@ -1122,19 +1124,11 @@ void WindowsTextInputComponentView::updateState(
|
|
|
1122
1124
|
m_comingFromState = true;
|
|
1123
1125
|
// Only handle single/empty fragments right now -- ignore the other fragments
|
|
1124
1126
|
|
|
1125
|
-
LRESULT res;
|
|
1126
|
-
CHARRANGE cr;
|
|
1127
|
-
cr.cpMin = cr.cpMax = 0;
|
|
1128
|
-
winrt::check_hresult(m_textServices->TxSendMessage(EM_EXGETSEL, 0, reinterpret_cast<LPARAM>(&cr), &res));
|
|
1129
|
-
|
|
1130
1127
|
UpdateText(
|
|
1131
1128
|
m_state->getData().attributedString.getFragments().size()
|
|
1132
1129
|
? m_state->getData().attributedString.getFragments()[0].string
|
|
1133
1130
|
: "");
|
|
1134
1131
|
|
|
1135
|
-
winrt::check_hresult(
|
|
1136
|
-
m_textServices->TxSendMessage(EM_SETSEL, static_cast<WPARAM>(cr.cpMin), static_cast<LPARAM>(cr.cpMax), &res));
|
|
1137
|
-
|
|
1138
1132
|
m_comingFromState = false;
|
|
1139
1133
|
}
|
|
1140
1134
|
}
|
|
@@ -1153,7 +1147,8 @@ void WindowsTextInputComponentView::UpdateText(const std::string &str) noexcept
|
|
|
1153
1147
|
winrt::check_hresult(m_textServices->TxSendMessage(
|
|
1154
1148
|
EM_SETTEXTEX, reinterpret_cast<WPARAM>(&stt), reinterpret_cast<LPARAM>(str.c_str()), &res));
|
|
1155
1149
|
|
|
1156
|
-
winrt::check_hresult(
|
|
1150
|
+
winrt::check_hresult(
|
|
1151
|
+
m_textServices->TxSendMessage(EM_SETSEL, static_cast<WPARAM>(cr.cpMin), static_cast<LPARAM>(cr.cpMax), &res));
|
|
1157
1152
|
|
|
1158
1153
|
// enable colored emojis
|
|
1159
1154
|
winrt::check_hresult(
|
|
@@ -1216,7 +1211,7 @@ void WindowsTextInputComponentView::OnTextUpdated() noexcept {
|
|
|
1216
1211
|
}
|
|
1217
1212
|
|
|
1218
1213
|
void WindowsTextInputComponentView::OnSelectionChanged(LONG start, LONG end) noexcept {
|
|
1219
|
-
if (m_eventEmitter /* && !m_comingFromJS ?? */) {
|
|
1214
|
+
if (m_eventEmitter && !m_comingFromState /* && !m_comingFromJS ?? */) {
|
|
1220
1215
|
auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
|
|
1221
1216
|
facebook::react::WindowsTextInputEventEmitter::OnSelectionChange onSelectionChangeArgs;
|
|
1222
1217
|
onSelectionChangeArgs.selection.start = start;
|
|
@@ -185,8 +185,7 @@ Size WindowsTextInputShadowNode::measureContent(
|
|
|
185
185
|
AttributedStringBox{attributedString},
|
|
186
186
|
{}, // TODO getConcreteProps().paragraphAttributes,
|
|
187
187
|
textLayoutContext,
|
|
188
|
-
layoutConstraints
|
|
189
|
-
nullptr)
|
|
188
|
+
layoutConstraints)
|
|
190
189
|
.size;
|
|
191
190
|
}
|
|
192
191
|
|
|
@@ -285,9 +285,15 @@ ImageResponseOrImageErrorInfo ImageResponse::ResolveImage() {
|
|
|
285
285
|
|
|
286
286
|
ImageResponseOrImageErrorInfo ImageFailedResponse::ResolveImage() {
|
|
287
287
|
ImageResponseOrImageErrorInfo imageOrError;
|
|
288
|
-
imageOrError.errorInfo =
|
|
289
|
-
|
|
290
|
-
|
|
288
|
+
imageOrError.errorInfo = std::make_shared<facebook::react::ImageErrorInfo>();
|
|
289
|
+
imageOrError.errorInfo->responseCode = static_cast<int>(m_statusCode);
|
|
290
|
+
imageOrError.errorInfo->error = winrt::to_string(m_errorMessage);
|
|
291
|
+
if (imageOrError.errorInfo->error.empty()) {
|
|
292
|
+
imageOrError.errorInfo->error = "Failed to load image.";
|
|
293
|
+
}
|
|
294
|
+
for (auto &&[header, value] : m_responseHeaders) {
|
|
295
|
+
imageOrError.errorInfo->httpResponseHeaders.push_back(
|
|
296
|
+
std::make_pair<std::string, std::string>(winrt::to_string(header), winrt::to_string(value)));
|
|
291
297
|
}
|
|
292
298
|
return imageOrError;
|
|
293
299
|
}
|
|
@@ -41,7 +41,7 @@ winrt::Microsoft::ReactNative::Composition::ImageSource MakeImageSource(
|
|
|
41
41
|
|
|
42
42
|
struct ImageResponseOrImageErrorInfo {
|
|
43
43
|
std::shared_ptr<winrt::Microsoft::ReactNative::Composition::implementation::ImageResponseImage> image;
|
|
44
|
-
std::
|
|
44
|
+
std::shared_ptr<facebook::react::ImageErrorInfo> errorInfo;
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
struct ImageResponse : ImageResponseT<ImageResponse /*, IResolveImage*/> {
|
|
@@ -79,20 +79,8 @@ void FabricUIManager::installFabricUIManager() noexcept {
|
|
|
79
79
|
runtimeExecutor = [runtimeScheduler](std::function<void(facebook::jsi::Runtime & runtime)> &&callback) {
|
|
80
80
|
runtimeScheduler->scheduleWork(std::move(callback));
|
|
81
81
|
};
|
|
82
|
-
facebook::react::EventBeat::Factory synchronousBeatFactory =
|
|
83
|
-
[runtimeExecutor, context = m_context, runtimeScheduler](
|
|
84
|
-
facebook::react::EventBeat::SharedOwnerBox const &ownerBox) {
|
|
85
|
-
return std::make_unique<SynchronousEventBeat>(ownerBox, context, runtimeExecutor, runtimeScheduler);
|
|
86
|
-
};
|
|
87
|
-
toolbox.synchronousEventBeatFactory = synchronousBeatFactory;
|
|
88
82
|
} else {
|
|
89
83
|
runtimeExecutor = SchedulerSettings::GetRuntimeExecutor(m_context.Properties());
|
|
90
|
-
|
|
91
|
-
facebook::react::EventBeat::Factory synchronousBeatFactory =
|
|
92
|
-
[runtimeExecutor, context = m_context](facebook::react::EventBeat::SharedOwnerBox const &ownerBox) {
|
|
93
|
-
return std::make_unique<AsynchronousEventBeat>(ownerBox, context, runtimeExecutor);
|
|
94
|
-
};
|
|
95
|
-
toolbox.synchronousEventBeatFactory = synchronousBeatFactory;
|
|
96
84
|
}
|
|
97
85
|
|
|
98
86
|
facebook::react::EventBeat::Factory asynchronousBeatFactory =
|
|
@@ -324,9 +312,6 @@ void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::
|
|
|
324
312
|
}
|
|
325
313
|
|
|
326
314
|
void FabricUIManager::schedulerDidFinishTransaction(
|
|
327
|
-
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) {}
|
|
328
|
-
|
|
329
|
-
void FabricUIManager::schedulerShouldRenderTransactions(
|
|
330
315
|
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) {
|
|
331
316
|
// Should cache this locally
|
|
332
317
|
|
|
@@ -338,9 +323,17 @@ void FabricUIManager::schedulerShouldRenderTransactions(
|
|
|
338
323
|
}
|
|
339
324
|
}
|
|
340
325
|
|
|
341
|
-
void FabricUIManager::
|
|
342
|
-
facebook::react::
|
|
343
|
-
|
|
326
|
+
void FabricUIManager::schedulerShouldRenderTransactions(
|
|
327
|
+
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) {
|
|
328
|
+
if (m_context.UIDispatcher().HasThreadAccess()) {
|
|
329
|
+
initiateTransaction(mountingCoordinator);
|
|
330
|
+
} else {
|
|
331
|
+
m_context.UIDispatcher().Post(
|
|
332
|
+
[mountingCoordinator, self = shared_from_this()]() { self->initiateTransaction(mountingCoordinator); });
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
void FabricUIManager::schedulerDidRequestPreliminaryViewAllocation(const facebook::react::ShadowNode &shadowView) {
|
|
344
337
|
// iOS does not do this optimization, but Android does. It maybe that android's allocations are more expensive due to
|
|
345
338
|
// the Java boundary.
|
|
346
339
|
// TODO: We should do some perf tests to see if this is worth doing.
|
|
@@ -79,13 +79,11 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
79
79
|
std::unordered_map<facebook::react::SurfaceId, SurfaceInfo> m_surfaceRegistry;
|
|
80
80
|
|
|
81
81
|
// Inherited via SchedulerDelegate
|
|
82
|
-
virtual void schedulerShouldRenderTransactions(
|
|
83
|
-
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
|
|
84
82
|
virtual void schedulerDidFinishTransaction(
|
|
85
83
|
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
|
|
86
|
-
virtual void
|
|
87
|
-
facebook::react::
|
|
88
|
-
|
|
84
|
+
virtual void schedulerShouldRenderTransactions(
|
|
85
|
+
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
|
|
86
|
+
virtual void schedulerDidRequestPreliminaryViewAllocation(const facebook::react::ShadowNode &shadowView) override;
|
|
89
87
|
virtual void schedulerDidDispatchCommand(
|
|
90
88
|
facebook::react::ShadowView const &shadowView,
|
|
91
89
|
std::string const &commandName,
|
|
@@ -43,8 +43,11 @@ WindowsImageManager::WindowsImageManager(winrt::Microsoft::ReactNative::ReactCon
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
std::tuple<
|
|
47
|
-
|
|
46
|
+
std::tuple<
|
|
47
|
+
winrt::com_ptr<IWICBitmapSource>,
|
|
48
|
+
winrt::com_ptr<IWICImagingFactory>,
|
|
49
|
+
std::shared_ptr<facebook::react::ImageErrorInfo>>
|
|
50
|
+
wicBitmapSourceFromStream(const winrt::Windows::Storage::Streams::IRandomAccessStream &stream) noexcept {
|
|
48
51
|
try {
|
|
49
52
|
winrt::com_ptr<IWICImagingFactory> imagingFactory;
|
|
50
53
|
winrt::check_hresult(WICCreateImagingFactory_Proxy(WINCODEC_SDK_VERSION, imagingFactory.put()));
|
|
@@ -58,14 +61,19 @@ std::tuple<winrt::com_ptr<IWICBitmapSource>, winrt::com_ptr<IWICImagingFactory>,
|
|
|
58
61
|
istream.get(), nullptr, WICDecodeMetadataCacheOnDemand, bitmapDecoder.put()));
|
|
59
62
|
|
|
60
63
|
if (!bitmapDecoder) {
|
|
61
|
-
|
|
64
|
+
auto errorInfo = std::make_shared<facebook::react::ImageErrorInfo>();
|
|
65
|
+
errorInfo->error = "Failed to decode the image.";
|
|
66
|
+
return {nullptr, nullptr, errorInfo};
|
|
62
67
|
}
|
|
63
68
|
|
|
64
69
|
winrt::com_ptr<IWICBitmapFrameDecode> decodedFrame;
|
|
65
70
|
winrt::check_hresult(bitmapDecoder->GetFrame(0, decodedFrame.put()));
|
|
66
|
-
return {decodedFrame, imagingFactory,
|
|
71
|
+
return {decodedFrame, imagingFactory, nullptr};
|
|
67
72
|
} catch (winrt::hresult_error const &ex) {
|
|
68
|
-
|
|
73
|
+
auto errorInfo = std::make_shared<facebook::react::ImageErrorInfo>();
|
|
74
|
+
errorInfo = std::make_shared<facebook::react::ImageErrorInfo>();
|
|
75
|
+
errorInfo->error = ::Microsoft::ReactNative::FormatHResultError(winrt::hresult_error(ex));
|
|
76
|
+
return {nullptr, nullptr, errorInfo};
|
|
69
77
|
}
|
|
70
78
|
}
|
|
71
79
|
|
|
@@ -87,11 +95,6 @@ WindowsImageManager::GetImageRandomAccessStreamAsync(ReactImageSource source) co
|
|
|
87
95
|
}
|
|
88
96
|
|
|
89
97
|
winrt::Windows::Storage::StorageFile file(co_await getFileSync);
|
|
90
|
-
|
|
91
|
-
if (!file) {
|
|
92
|
-
co_return winrt::Microsoft::ReactNative::Composition::ImageFailedResponse(L"Failed to get file.");
|
|
93
|
-
}
|
|
94
|
-
|
|
95
98
|
co_return winrt::Microsoft::ReactNative::Composition::StreamImageResponse(co_await file.OpenReadAsync());
|
|
96
99
|
}
|
|
97
100
|
|
|
@@ -171,16 +174,20 @@ facebook::react::ImageRequest WindowsImageManager::requestImage(
|
|
|
171
174
|
observerCoordinator->nativeImageResponseComplete(
|
|
172
175
|
facebook::react::ImageResponse(imageResultOrError.image, nullptr /*metadata*/));
|
|
173
176
|
} else {
|
|
174
|
-
observerCoordinator->nativeImageResponseFailed();
|
|
177
|
+
observerCoordinator->nativeImageResponseFailed(facebook::react::ImageLoadError(imageResultOrError.errorInfo));
|
|
175
178
|
}
|
|
176
179
|
break;
|
|
177
180
|
}
|
|
178
181
|
case winrt::Windows::Foundation::AsyncStatus::Canceled: {
|
|
179
|
-
|
|
182
|
+
auto errorInfo = std::make_shared<facebook::react::ImageErrorInfo>();
|
|
183
|
+
errorInfo->error = FormatHResultError(winrt::hresult_error(asyncOp.ErrorCode()));
|
|
184
|
+
observerCoordinator->nativeImageResponseFailed(facebook::react::ImageLoadError(errorInfo));
|
|
180
185
|
break;
|
|
181
186
|
}
|
|
182
187
|
case winrt::Windows::Foundation::AsyncStatus::Error: {
|
|
183
|
-
|
|
188
|
+
auto errorInfo = std::make_shared<facebook::react::ImageErrorInfo>();
|
|
189
|
+
errorInfo->error = FormatHResultError(winrt::hresult_error(asyncOp.ErrorCode()));
|
|
190
|
+
observerCoordinator->nativeImageResponseFailed(facebook::react::ImageLoadError(errorInfo));
|
|
184
191
|
break;
|
|
185
192
|
}
|
|
186
193
|
case winrt::Windows::Foundation::AsyncStatus::Started: {
|
|
@@ -202,8 +209,7 @@ ImageResponseOrImageErrorInfo StreamImageResponse::ResolveImage() {
|
|
|
202
209
|
try {
|
|
203
210
|
auto result = ::Microsoft::ReactNative::wicBitmapSourceFromStream(m_stream);
|
|
204
211
|
|
|
205
|
-
auto
|
|
206
|
-
if (!errorInfo.empty()) {
|
|
212
|
+
if (auto errorInfo = std::get<std::shared_ptr<facebook::react::ImageErrorInfo>>(result)) {
|
|
207
213
|
imageOrError.errorInfo = errorInfo;
|
|
208
214
|
return imageOrError;
|
|
209
215
|
}
|
|
@@ -227,7 +233,8 @@ ImageResponseOrImageErrorInfo StreamImageResponse::ResolveImage() {
|
|
|
227
233
|
winrt::check_hresult(imagingFactory->CreateBitmapFromSource(
|
|
228
234
|
converter.get(), WICBitmapCacheOnLoad, imageOrError.image->m_wicbmp.put()));
|
|
229
235
|
} catch (winrt::hresult_error const &ex) {
|
|
230
|
-
imageOrError.errorInfo = ::
|
|
236
|
+
imageOrError.errorInfo = std::make_shared<facebook::react::ImageErrorInfo>();
|
|
237
|
+
imageOrError.errorInfo->error = ::Microsoft::ReactNative::FormatHResultError(winrt::hresult_error(ex));
|
|
231
238
|
}
|
|
232
239
|
return imageOrError;
|
|
233
240
|
}
|
|
@@ -30,7 +30,10 @@ struct WindowsImageManager {
|
|
|
30
30
|
std::shared_ptr<winrt::Microsoft::ReactNative::Composition::implementation::UriImageManager> m_uriImageManager;
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
std::tuple<
|
|
34
|
-
|
|
33
|
+
std::tuple<
|
|
34
|
+
winrt::com_ptr<IWICBitmapSource>,
|
|
35
|
+
winrt::com_ptr<IWICImagingFactory>,
|
|
36
|
+
std::shared_ptr<facebook::react::ImageErrorInfo>>
|
|
37
|
+
wicBitmapSourceFromStream(const winrt::Windows::Storage::Streams::IRandomAccessStream &stream) noexcept;
|
|
35
38
|
|
|
36
39
|
} // namespace Microsoft::ReactNative
|
|
@@ -39,19 +39,11 @@ void HostPlatformViewEventEmitter::onBlur() const {
|
|
|
39
39
|
#pragma mark - Mouse Events
|
|
40
40
|
|
|
41
41
|
void HostPlatformViewEventEmitter::onMouseEnter(PointerEvent const &pointerEvent) const {
|
|
42
|
-
dispatchEvent(
|
|
43
|
-
"mouseEnter",
|
|
44
|
-
std::make_shared<PointerEvent>(pointerEvent),
|
|
45
|
-
EventPriority::AsynchronousBatched,
|
|
46
|
-
RawEvent::Category::ContinuousStart);
|
|
42
|
+
dispatchEvent("mouseEnter", std::make_shared<PointerEvent>(pointerEvent), RawEvent::Category::ContinuousStart);
|
|
47
43
|
}
|
|
48
44
|
|
|
49
45
|
void HostPlatformViewEventEmitter::onMouseLeave(PointerEvent const &pointerEvent) const {
|
|
50
|
-
dispatchEvent(
|
|
51
|
-
"mouseLeave",
|
|
52
|
-
std::make_shared<PointerEvent>(pointerEvent),
|
|
53
|
-
EventPriority::AsynchronousBatched,
|
|
54
|
-
RawEvent::Category::ContinuousStart);
|
|
46
|
+
dispatchEvent("mouseLeave", std::make_shared<PointerEvent>(pointerEvent), RawEvent::Category::ContinuousStart);
|
|
55
47
|
}
|
|
56
48
|
|
|
57
49
|
} // namespace facebook::react
|