react-native-windows 0.74.12 → 0.75.0-preview.2
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/Utilities.cpp +2 -2
- 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 -128
- 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/Composition.Input.idl +3 -3
- package/Microsoft.ReactNative/CompositionSwitcher.idl +0 -1
- package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
- package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +0 -3
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -10
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +27 -16
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +48 -85
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +0 -4
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +24 -24
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +6 -8
- 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 +6 -43
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +23 -34
- 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 +17 -48
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -7
- 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 +13 -20
- 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 +41 -78
- 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/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/README.md +21 -21
- package/ReactCommon/ReactCommon.vcxproj +2 -0
- package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
- 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/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 +1 -1
- 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
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
#include <Utils/ValueUtils.h>
|
|
17
17
|
#include <Views/FrameworkElementTransferProperties.h>
|
|
18
18
|
#include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
|
|
19
|
-
#include <winrt/Microsoft.UI.Input.h>
|
|
20
19
|
#include <winrt/Windows.UI.Composition.h>
|
|
21
20
|
#include "CompositionContextHelper.h"
|
|
22
21
|
#include "CompositionDynamicAutomationProvider.h"
|
|
@@ -180,46 +179,11 @@ const facebook::react::LayoutMetrics &ComponentView::layoutMetrics() const noexc
|
|
|
180
179
|
return m_layoutMetrics;
|
|
181
180
|
}
|
|
182
181
|
|
|
183
|
-
void ComponentView::FinalizeTransform(
|
|
184
|
-
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
185
|
-
const facebook::react::ViewProps &viewProps) noexcept {
|
|
186
|
-
const auto resolveTransformMatrix = viewProps.resolveTransform(layoutMetrics);
|
|
187
|
-
winrt::Windows::Foundation::Numerics::float4x4 transformMatrix;
|
|
188
|
-
transformMatrix.m11 = resolveTransformMatrix.matrix[0];
|
|
189
|
-
transformMatrix.m12 = resolveTransformMatrix.matrix[1];
|
|
190
|
-
transformMatrix.m13 = resolveTransformMatrix.matrix[2];
|
|
191
|
-
transformMatrix.m14 = resolveTransformMatrix.matrix[3];
|
|
192
|
-
transformMatrix.m21 = resolveTransformMatrix.matrix[4];
|
|
193
|
-
transformMatrix.m22 = resolveTransformMatrix.matrix[5];
|
|
194
|
-
transformMatrix.m23 = resolveTransformMatrix.matrix[6];
|
|
195
|
-
transformMatrix.m24 = resolveTransformMatrix.matrix[7];
|
|
196
|
-
transformMatrix.m31 = resolveTransformMatrix.matrix[8];
|
|
197
|
-
transformMatrix.m32 = resolveTransformMatrix.matrix[9];
|
|
198
|
-
transformMatrix.m33 = resolveTransformMatrix.matrix[10];
|
|
199
|
-
transformMatrix.m34 = resolveTransformMatrix.matrix[11];
|
|
200
|
-
transformMatrix.m41 = resolveTransformMatrix.matrix[12];
|
|
201
|
-
transformMatrix.m42 = resolveTransformMatrix.matrix[13];
|
|
202
|
-
transformMatrix.m43 = resolveTransformMatrix.matrix[14];
|
|
203
|
-
transformMatrix.m44 = resolveTransformMatrix.matrix[15];
|
|
204
|
-
|
|
205
|
-
auto centerPointPropSet = EnsureCenterPointPropertySet();
|
|
206
|
-
if (centerPointPropSet) {
|
|
207
|
-
centerPointPropSet.InsertMatrix4x4(L"transform", transformMatrix);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
EnsureTransformMatrixFacade();
|
|
211
|
-
m_FinalizeTransform = false;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
182
|
void ComponentView::FinalizeUpdates(winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept {
|
|
215
183
|
if ((m_flags & ComponentViewFeatures::NativeBorder) == ComponentViewFeatures::NativeBorder) {
|
|
216
184
|
finalizeBorderUpdates(m_layoutMetrics, *viewProps());
|
|
217
185
|
}
|
|
218
186
|
|
|
219
|
-
if (m_FinalizeTransform) {
|
|
220
|
-
FinalizeTransform(m_layoutMetrics, *viewProps());
|
|
221
|
-
}
|
|
222
|
-
|
|
223
187
|
base_type::FinalizeUpdates(updateMask);
|
|
224
188
|
}
|
|
225
189
|
|
|
@@ -638,8 +602,6 @@ void SetBorderLayerPropertiesCommon(
|
|
|
638
602
|
facebook::react::BorderStyle borderStyle) {
|
|
639
603
|
layer.Offset({anchorOffset.x, anchorOffset.y, 0}, {anchorPoint.x, anchorPoint.y, 0});
|
|
640
604
|
layer.RelativeSizeWithOffset(size, relativeSizeAdjustment);
|
|
641
|
-
layer.as<::Microsoft::ReactNative::Composition::Experimental::IVisualInterop>()->SetClippingPath(nullptr);
|
|
642
|
-
|
|
643
605
|
if ((textureRect.right - textureRect.left) <= 0 || (textureRect.bottom - textureRect.top) <= 0)
|
|
644
606
|
return;
|
|
645
607
|
|
|
@@ -741,8 +703,7 @@ void SetBorderLayerProperties(
|
|
|
741
703
|
// if (VisualVersion::IsUseWinCompClippingRegionEnabled())
|
|
742
704
|
{
|
|
743
705
|
layer.Offset({anchorOffset.x, anchorOffset.y, 0}, {anchorPoint.x, anchorPoint.y, 0});
|
|
744
|
-
layer.
|
|
745
|
-
{textureRect.right - textureRect.left, textureRect.bottom - textureRect.top}, {0.0f, 0.0f});
|
|
706
|
+
layer.Size({textureRect.right - textureRect.left, textureRect.bottom - textureRect.top});
|
|
746
707
|
|
|
747
708
|
layer.Brush(theme->Brush(*borderColor));
|
|
748
709
|
|
|
@@ -1281,7 +1242,30 @@ void ComponentView::updateTransformProps(
|
|
|
1281
1242
|
|
|
1282
1243
|
// Transform - TODO doesn't handle multiple of the same kind of transform -- Doesn't handle hittesting updates
|
|
1283
1244
|
if (oldViewProps.transform != newViewProps.transform) {
|
|
1284
|
-
|
|
1245
|
+
winrt::Windows::Foundation::Numerics::float4x4 transformMatrix;
|
|
1246
|
+
transformMatrix.m11 = newViewProps.transform.matrix[0];
|
|
1247
|
+
transformMatrix.m12 = newViewProps.transform.matrix[1];
|
|
1248
|
+
transformMatrix.m13 = newViewProps.transform.matrix[2];
|
|
1249
|
+
transformMatrix.m14 = newViewProps.transform.matrix[3];
|
|
1250
|
+
transformMatrix.m21 = newViewProps.transform.matrix[4];
|
|
1251
|
+
transformMatrix.m22 = newViewProps.transform.matrix[5];
|
|
1252
|
+
transformMatrix.m23 = newViewProps.transform.matrix[6];
|
|
1253
|
+
transformMatrix.m24 = newViewProps.transform.matrix[7];
|
|
1254
|
+
transformMatrix.m31 = newViewProps.transform.matrix[8];
|
|
1255
|
+
transformMatrix.m32 = newViewProps.transform.matrix[9];
|
|
1256
|
+
transformMatrix.m33 = newViewProps.transform.matrix[10];
|
|
1257
|
+
transformMatrix.m34 = newViewProps.transform.matrix[11];
|
|
1258
|
+
transformMatrix.m41 = newViewProps.transform.matrix[12];
|
|
1259
|
+
transformMatrix.m42 = newViewProps.transform.matrix[13];
|
|
1260
|
+
transformMatrix.m43 = newViewProps.transform.matrix[14];
|
|
1261
|
+
transformMatrix.m44 = newViewProps.transform.matrix[15];
|
|
1262
|
+
|
|
1263
|
+
auto centerPointPropSet = EnsureCenterPointPropertySet();
|
|
1264
|
+
if (centerPointPropSet) {
|
|
1265
|
+
centerPointPropSet.InsertMatrix4x4(L"transform", transformMatrix);
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
EnsureTransformMatrixFacade();
|
|
1285
1269
|
}
|
|
1286
1270
|
}
|
|
1287
1271
|
|
|
@@ -1630,10 +1614,7 @@ inline winrt::Windows::System::VirtualKey GetLeftOrRightModifiedKey(
|
|
|
1630
1614
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
|
|
1631
1615
|
winrt::Windows::System::VirtualKey leftKey,
|
|
1632
1616
|
winrt::Windows::System::VirtualKey rightKey) {
|
|
1633
|
-
return (
|
|
1634
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down)
|
|
1635
|
-
? leftKey
|
|
1636
|
-
: rightKey;
|
|
1617
|
+
return (source.GetKeyState(leftKey) == winrt::Windows::UI::Core::CoreVirtualKeyStates::Down) ? leftKey : rightKey;
|
|
1637
1618
|
}
|
|
1638
1619
|
|
|
1639
1620
|
std::string CodeFromVirtualKey(
|
|
@@ -1666,20 +1647,16 @@ void ViewComponentView::OnKeyDown(
|
|
|
1666
1647
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
|
|
1667
1648
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
|
|
1668
1649
|
auto eventCode = CodeFromVirtualKey(source, args.Key());
|
|
1669
|
-
bool fShift =
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
bool
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
((source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) &
|
|
1680
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ||
|
|
1681
|
-
((source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) &
|
|
1682
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down);
|
|
1650
|
+
bool fShift = source.GetKeyState(winrt::Windows::System::VirtualKey::Shift) !=
|
|
1651
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None;
|
|
1652
|
+
bool fAlt = source.GetKeyState(winrt::Windows::System::VirtualKey::Menu) !=
|
|
1653
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None;
|
|
1654
|
+
bool fCtrl = source.GetKeyState(winrt::Windows::System::VirtualKey::Control) !=
|
|
1655
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None;
|
|
1656
|
+
bool fMeta = (source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) !=
|
|
1657
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None) ||
|
|
1658
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) !=
|
|
1659
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None);
|
|
1683
1660
|
|
|
1684
1661
|
if (args.OriginalSource() == Tag() && !args.Handled()) {
|
|
1685
1662
|
facebook::react::KeyEvent event;
|
|
@@ -1688,12 +1665,7 @@ void ViewComponentView::OnKeyDown(
|
|
|
1688
1665
|
event.altKey = fAlt;
|
|
1689
1666
|
event.metaKey = fMeta;
|
|
1690
1667
|
|
|
1691
|
-
event.key = ::Microsoft::ReactNative::FromVirtualKey(
|
|
1692
|
-
args.Key(),
|
|
1693
|
-
event.shiftKey,
|
|
1694
|
-
!!((source.GetKeyState(winrt::Windows::System::VirtualKey::CapitalLock) &
|
|
1695
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Locked) ==
|
|
1696
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Locked));
|
|
1668
|
+
event.key = ::Microsoft::ReactNative::FromVirtualKey(args.Key(), event.shiftKey, !!(GetKeyState(VK_CAPITAL) & 1));
|
|
1697
1669
|
event.code = eventCode;
|
|
1698
1670
|
m_eventEmitter->onKeyDown(event);
|
|
1699
1671
|
}
|
|
@@ -1714,20 +1686,16 @@ void ViewComponentView::OnKeyUp(
|
|
|
1714
1686
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyboardSource &source,
|
|
1715
1687
|
const winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs &args) noexcept {
|
|
1716
1688
|
auto eventCode = CodeFromVirtualKey(source, args.Key());
|
|
1717
|
-
bool fShift =
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
bool
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
((source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) &
|
|
1728
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ||
|
|
1729
|
-
((source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) &
|
|
1730
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) == winrt::Microsoft::UI::Input::VirtualKeyStates::Down);
|
|
1689
|
+
bool fShift = source.GetKeyState(winrt::Windows::System::VirtualKey::Shift) !=
|
|
1690
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None;
|
|
1691
|
+
bool fAlt = source.GetKeyState(winrt::Windows::System::VirtualKey::Menu) !=
|
|
1692
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None;
|
|
1693
|
+
bool fCtrl = source.GetKeyState(winrt::Windows::System::VirtualKey::Control) !=
|
|
1694
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None;
|
|
1695
|
+
bool fMeta = (source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) !=
|
|
1696
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None) ||
|
|
1697
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) !=
|
|
1698
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::None);
|
|
1731
1699
|
|
|
1732
1700
|
if (args.OriginalSource() == Tag()) {
|
|
1733
1701
|
facebook::react::KeyEvent event;
|
|
@@ -1736,12 +1704,7 @@ void ViewComponentView::OnKeyUp(
|
|
|
1736
1704
|
event.altKey = fAlt;
|
|
1737
1705
|
event.metaKey = fMeta;
|
|
1738
1706
|
|
|
1739
|
-
event.key = ::Microsoft::ReactNative::FromVirtualKey(
|
|
1740
|
-
args.Key(),
|
|
1741
|
-
event.shiftKey,
|
|
1742
|
-
!!((source.GetKeyState(winrt::Windows::System::VirtualKey::CapitalLock) &
|
|
1743
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
1744
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down));
|
|
1707
|
+
event.key = ::Microsoft::ReactNative::FromVirtualKey(args.Key(), event.shiftKey, !!(GetKeyState(VK_CAPITAL) & 1));
|
|
1745
1708
|
event.code = eventCode;
|
|
1746
1709
|
m_eventEmitter->onKeyUp(event);
|
|
1747
1710
|
}
|
|
@@ -168,11 +168,7 @@ struct ComponentView
|
|
|
168
168
|
std::array<winrt::Microsoft::ReactNative::Composition::Experimental::ISpriteVisual, SpecialBorderLayerCount>
|
|
169
169
|
FindSpecialBorderLayers() const noexcept;
|
|
170
170
|
void UpdateCenterPropertySet() noexcept;
|
|
171
|
-
void FinalizeTransform(
|
|
172
|
-
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
173
|
-
const facebook::react::ViewProps &viewProps) noexcept;
|
|
174
171
|
|
|
175
|
-
bool m_FinalizeTransform{false};
|
|
176
172
|
ComponentViewFeatures m_flags;
|
|
177
173
|
void showFocusVisual(bool show) noexcept;
|
|
178
174
|
winrt::Microsoft::ReactNative::Composition::Experimental::IFocusVisual m_focusVisual{nullptr};
|
|
@@ -30,30 +30,25 @@ extern "C" HRESULT WINAPI WICCreateImagingFactory_Proxy(UINT SDKVersion, IWICIma
|
|
|
30
30
|
|
|
31
31
|
namespace winrt::Microsoft::ReactNative::Composition::implementation {
|
|
32
32
|
|
|
33
|
-
ImageComponentView::WindowsImageResponseObserver::WindowsImageResponseObserver(
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
ImageComponentView::WindowsImageResponseObserver::WindowsImageResponseObserver(ImageComponentView &image) {
|
|
34
|
+
m_image.copy_from(&image);
|
|
35
|
+
}
|
|
36
36
|
|
|
37
|
-
void ImageComponentView::WindowsImageResponseObserver::didReceiveProgress(float progress
|
|
37
|
+
void ImageComponentView::WindowsImageResponseObserver::didReceiveProgress(float progress, int64_t loaded, int64_t total)
|
|
38
|
+
const {
|
|
38
39
|
// TODO progress?
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
void ImageComponentView::WindowsImageResponseObserver::didReceiveImage(
|
|
42
43
|
facebook::react::ImageResponse const &imageResponse) const {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (auto image{wkImage.get()}) {
|
|
47
|
-
image->didReceiveImage(imageResponseImage);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
}
|
|
44
|
+
auto imageResponseImage = std::static_pointer_cast<ImageResponseImage>(imageResponse.getImage());
|
|
45
|
+
m_image->m_reactContext.UIDispatcher().Post(
|
|
46
|
+
[imageResponseImage, image = m_image]() { image->didReceiveImage(imageResponseImage); });
|
|
51
47
|
}
|
|
52
48
|
|
|
53
|
-
void ImageComponentView::WindowsImageResponseObserver::didReceiveFailure(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
49
|
+
void ImageComponentView::WindowsImageResponseObserver::didReceiveFailure(
|
|
50
|
+
facebook::react::ImageLoadError const &error) const {
|
|
51
|
+
m_image->didReceiveFailureFromObserver(error);
|
|
57
52
|
}
|
|
58
53
|
|
|
59
54
|
facebook::react::SharedViewProps ImageComponentView::defaultProps() noexcept {
|
|
@@ -99,7 +94,7 @@ void ImageComponentView::didReceiveImage(const std::shared_ptr<ImageResponseImag
|
|
|
99
94
|
|
|
100
95
|
auto imageEventEmitter = std::static_pointer_cast<facebook::react::ImageEventEmitter const>(m_eventEmitter);
|
|
101
96
|
if (imageEventEmitter) {
|
|
102
|
-
imageEventEmitter->onLoad();
|
|
97
|
+
imageEventEmitter->onLoad(m_state->getData().getImageSource());
|
|
103
98
|
imageEventEmitter->onLoadEnd();
|
|
104
99
|
}
|
|
105
100
|
|
|
@@ -114,10 +109,12 @@ void ImageComponentView::didReceiveImage(const std::shared_ptr<ImageResponseImag
|
|
|
114
109
|
ensureDrawingSurface();
|
|
115
110
|
}
|
|
116
111
|
|
|
117
|
-
void ImageComponentView::didReceiveFailureFromObserver() noexcept {
|
|
112
|
+
void ImageComponentView::didReceiveFailureFromObserver(const facebook::react::ImageLoadError &error) noexcept {
|
|
118
113
|
auto imageEventEmitter = std::static_pointer_cast<facebook::react::ImageEventEmitter const>(m_eventEmitter);
|
|
119
114
|
if (imageEventEmitter) {
|
|
120
|
-
|
|
115
|
+
std::shared_ptr<facebook::react::ImageErrorInfo> errorInfo =
|
|
116
|
+
std::static_pointer_cast<facebook::react::ImageErrorInfo>(error.getError());
|
|
117
|
+
imageEventEmitter->onError(*errorInfo);
|
|
121
118
|
imageEventEmitter->onLoadEnd();
|
|
122
119
|
}
|
|
123
120
|
}
|
|
@@ -149,7 +146,14 @@ void ImageComponentView::updateState(
|
|
|
149
146
|
auto newImageState = std::static_pointer_cast<facebook::react::ImageShadowNode::ConcreteState const>(state);
|
|
150
147
|
|
|
151
148
|
if (!m_imageResponseObserver) {
|
|
152
|
-
|
|
149
|
+
// Should ViewComponents enable_shared_from_this? then we don't need this dance to get a shared_ptr
|
|
150
|
+
std::shared_ptr<::Microsoft::ReactNative::FabricUIManager> fabricuiManager =
|
|
151
|
+
::Microsoft::ReactNative::FabricUIManager::FromProperties(m_reactContext.Properties());
|
|
152
|
+
auto componentViewDescriptor = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(m_tag);
|
|
153
|
+
|
|
154
|
+
m_imageResponseObserver = std::make_shared<WindowsImageResponseObserver>(
|
|
155
|
+
*componentViewDescriptor.view
|
|
156
|
+
.as<winrt::Microsoft::ReactNative::Composition::implementation::ImageComponentView>());
|
|
153
157
|
}
|
|
154
158
|
|
|
155
159
|
setStateAndResubscribeImageResponseObserver(newImageState);
|
|
@@ -178,10 +182,6 @@ void ImageComponentView::setStateAndResubscribeImageResponseObserver(
|
|
|
178
182
|
}
|
|
179
183
|
}
|
|
180
184
|
|
|
181
|
-
void ImageComponentView::prepareForRecycle() noexcept {
|
|
182
|
-
setStateAndResubscribeImageResponseObserver(nullptr);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
185
|
winrt::Microsoft::ReactNative::ImageProps ImageComponentView::ImageProps() noexcept {
|
|
186
186
|
// We do not currently support custom ImageComponentView's
|
|
187
187
|
// If we did we would need to create a AbiImageProps and possibly return them here
|
|
@@ -47,7 +47,6 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
|
|
|
47
47
|
override;
|
|
48
48
|
void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
|
|
49
49
|
override;
|
|
50
|
-
void prepareForRecycle() noexcept override;
|
|
51
50
|
void OnRenderingDeviceLost() noexcept override;
|
|
52
51
|
void onThemeChanged() noexcept override;
|
|
53
52
|
|
|
@@ -70,14 +69,13 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
|
|
|
70
69
|
private:
|
|
71
70
|
struct WindowsImageResponseObserver : facebook::react::ImageResponseObserver {
|
|
72
71
|
public:
|
|
73
|
-
WindowsImageResponseObserver(
|
|
74
|
-
|
|
75
|
-
void
|
|
76
|
-
void
|
|
77
|
-
void didReceiveFailure() const override;
|
|
72
|
+
WindowsImageResponseObserver(ImageComponentView &image);
|
|
73
|
+
void didReceiveProgress(float progress, int64_t loaded, int64_t total) const override;
|
|
74
|
+
void didReceiveImage(const facebook::react::ImageResponse &imageResponse) const override;
|
|
75
|
+
void didReceiveFailure(const facebook::react::ImageLoadError &error) const override;
|
|
78
76
|
|
|
79
77
|
private:
|
|
80
|
-
winrt::
|
|
78
|
+
winrt::com_ptr<ImageComponentView> m_image;
|
|
81
79
|
};
|
|
82
80
|
|
|
83
81
|
void ensureDrawingSurface() noexcept;
|
|
@@ -86,7 +84,7 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
|
|
|
86
84
|
void ImageLoadStart() noexcept;
|
|
87
85
|
void ImageLoaded() noexcept;
|
|
88
86
|
void didReceiveImage(const std::shared_ptr<ImageResponseImage> &wicbmp) noexcept;
|
|
89
|
-
void didReceiveFailureFromObserver() noexcept;
|
|
87
|
+
void didReceiveFailureFromObserver(const facebook::react::ImageLoadError &error) noexcept;
|
|
90
88
|
void setStateAndResubscribeImageResponseObserver(
|
|
91
89
|
facebook::react::ImageShadowNode::ConcreteState::Shared const &state) noexcept;
|
|
92
90
|
bool themeEffectsImage() const noexcept;
|
|
@@ -83,16 +83,6 @@ void ParagraphComponentView::updateState(
|
|
|
83
83
|
m_textLayout = nullptr;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
void ParagraphComponentView::updateLayoutMetrics(
|
|
87
|
-
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
88
|
-
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
|
|
89
|
-
Super::updateLayoutMetrics(layoutMetrics, oldLayoutMetrics);
|
|
90
|
-
|
|
91
|
-
if (layoutMetrics.pointScaleFactor != oldLayoutMetrics.pointScaleFactor) {
|
|
92
|
-
m_textLayout = nullptr;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
86
|
void ParagraphComponentView::FinalizeUpdates(
|
|
97
87
|
winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept {
|
|
98
88
|
ensureVisual();
|
|
@@ -34,9 +34,6 @@ struct ParagraphComponentView : ParagraphComponentViewT<ParagraphComponentView,
|
|
|
34
34
|
void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
|
|
35
35
|
override;
|
|
36
36
|
void updateEventEmitter(facebook::react::EventEmitter::Shared const &eventEmitter) noexcept override;
|
|
37
|
-
void updateLayoutMetrics(
|
|
38
|
-
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
39
|
-
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
|
|
40
37
|
void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
|
|
41
38
|
override;
|
|
42
39
|
void FinalizeUpdates(winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept override;
|
|
@@ -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
|
|