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
|
@@ -65,14 +65,13 @@ struct ScrollBarComponent {
|
|
|
65
65
|
|
|
66
66
|
updateShy(true);
|
|
67
67
|
onScaleChanged();
|
|
68
|
-
|
|
68
|
+
OnThemeChanged();
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
void
|
|
71
|
+
void OnThemeChanged() noexcept {
|
|
72
72
|
updateHighlight(ScrollbarHitRegion::ArrowFirst);
|
|
73
73
|
updateHighlight(ScrollbarHitRegion::ArrowLast);
|
|
74
74
|
updateHighlight(ScrollbarHitRegion::Thumb);
|
|
75
|
-
|
|
76
75
|
m_trackVisual.Brush(
|
|
77
76
|
winrt::get_self<winrt::Microsoft::ReactNative::Composition::implementation::Theme>(m_outer.Theme())
|
|
78
77
|
->InternalPlatformBrush(L"ScrollBarTrackFill"));
|
|
@@ -727,14 +726,6 @@ void ScrollViewComponentView::updateProps(
|
|
|
727
726
|
|
|
728
727
|
// update BaseComponentView props
|
|
729
728
|
base_type::updateProps(props, oldProps);
|
|
730
|
-
|
|
731
|
-
// Update the color only after updating the m_props in BaseComponentView
|
|
732
|
-
// to avoid scrollbarcomponents reading outdated scrollEnabled value.
|
|
733
|
-
if (!oldProps || oldViewProps.scrollEnabled != newViewProps.scrollEnabled) {
|
|
734
|
-
m_scrollVisual.ScrollEnabled(newViewProps.scrollEnabled);
|
|
735
|
-
m_horizontalScrollbarComponent->UpdateColorForScrollBarRegions();
|
|
736
|
-
m_verticalScrollbarComponent->UpdateColorForScrollBarRegions();
|
|
737
|
-
}
|
|
738
729
|
}
|
|
739
730
|
|
|
740
731
|
void ScrollViewComponentView::updateState(
|
|
@@ -834,8 +825,8 @@ void ScrollViewComponentView::OnPointerDown(const winrt::Windows::UI::Input::Poi
|
|
|
834
825
|
|
|
835
826
|
void ScrollViewComponentView::onThemeChanged() noexcept {
|
|
836
827
|
updateBackgroundColor(std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->backgroundColor);
|
|
837
|
-
m_verticalScrollbarComponent->
|
|
838
|
-
m_horizontalScrollbarComponent->
|
|
828
|
+
m_verticalScrollbarComponent->OnThemeChanged();
|
|
829
|
+
m_horizontalScrollbarComponent->OnThemeChanged();
|
|
839
830
|
Super::onThemeChanged();
|
|
840
831
|
}
|
|
841
832
|
|
|
@@ -928,10 +919,6 @@ void ScrollViewComponentView::OnKeyDown(
|
|
|
928
919
|
}
|
|
929
920
|
|
|
930
921
|
bool ScrollViewComponentView::scrollToEnd(bool animate) noexcept {
|
|
931
|
-
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
932
|
-
return false;
|
|
933
|
-
}
|
|
934
|
-
|
|
935
922
|
if ((((m_contentSize.height - m_layoutMetrics.frame.size.height) * m_layoutMetrics.pointScaleFactor) -
|
|
936
923
|
m_scrollVisual.ScrollPosition().y) < 1.0f) {
|
|
937
924
|
return false;
|
|
@@ -944,10 +931,6 @@ bool ScrollViewComponentView::scrollToEnd(bool animate) noexcept {
|
|
|
944
931
|
}
|
|
945
932
|
|
|
946
933
|
bool ScrollViewComponentView::scrollToStart(bool animate) noexcept {
|
|
947
|
-
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
948
|
-
return false;
|
|
949
|
-
}
|
|
950
|
-
|
|
951
934
|
m_scrollVisual.TryUpdatePosition({0.0f, 0.0f, 0.0f}, animate);
|
|
952
935
|
return true;
|
|
953
936
|
}
|
|
@@ -977,10 +960,6 @@ bool ScrollViewComponentView::lineRight(bool animate) noexcept {
|
|
|
977
960
|
}
|
|
978
961
|
|
|
979
962
|
bool ScrollViewComponentView::scrollDown(float delta, bool animate) noexcept {
|
|
980
|
-
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
981
|
-
return false;
|
|
982
|
-
}
|
|
983
|
-
|
|
984
963
|
if (((m_contentSize.height - m_layoutMetrics.frame.size.height) * m_layoutMetrics.pointScaleFactor) -
|
|
985
964
|
m_scrollVisual.ScrollPosition().y <
|
|
986
965
|
1.0f) {
|
|
@@ -992,10 +971,6 @@ bool ScrollViewComponentView::scrollDown(float delta, bool animate) noexcept {
|
|
|
992
971
|
}
|
|
993
972
|
|
|
994
973
|
bool ScrollViewComponentView::scrollUp(float delta, bool animate) noexcept {
|
|
995
|
-
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
996
|
-
return false;
|
|
997
|
-
}
|
|
998
|
-
|
|
999
974
|
if (m_scrollVisual.ScrollPosition().y <= 0.0f) {
|
|
1000
975
|
return false;
|
|
1001
976
|
}
|
|
@@ -1005,10 +980,6 @@ bool ScrollViewComponentView::scrollUp(float delta, bool animate) noexcept {
|
|
|
1005
980
|
}
|
|
1006
981
|
|
|
1007
982
|
bool ScrollViewComponentView::scrollLeft(float delta, bool animate) noexcept {
|
|
1008
|
-
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
1009
|
-
return false;
|
|
1010
|
-
}
|
|
1011
|
-
|
|
1012
983
|
if (m_scrollVisual.ScrollPosition().x <= 0.0f) {
|
|
1013
984
|
return false;
|
|
1014
985
|
}
|
|
@@ -1018,10 +989,6 @@ bool ScrollViewComponentView::scrollLeft(float delta, bool animate) noexcept {
|
|
|
1018
989
|
}
|
|
1019
990
|
|
|
1020
991
|
bool ScrollViewComponentView::scrollRight(float delta, bool animate) noexcept {
|
|
1021
|
-
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
1022
|
-
return false;
|
|
1023
|
-
}
|
|
1024
|
-
|
|
1025
992
|
if (((m_contentSize.width - m_layoutMetrics.frame.size.width) * m_layoutMetrics.pointScaleFactor) -
|
|
1026
993
|
m_scrollVisual.ScrollPosition().x <
|
|
1027
994
|
1.0f) {
|
|
@@ -1058,10 +1025,6 @@ void ScrollViewComponentView::HandleCommand(
|
|
|
1058
1025
|
}
|
|
1059
1026
|
|
|
1060
1027
|
void ScrollViewComponentView::scrollTo(winrt::Windows::Foundation::Numerics::float3 offset, bool animate) noexcept {
|
|
1061
|
-
if (!std::static_pointer_cast<const facebook::react::ScrollViewProps>(viewProps())->scrollEnabled) {
|
|
1062
|
-
return;
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
1028
|
m_scrollVisual.TryUpdatePosition(offset, animate);
|
|
1066
1029
|
}
|
|
1067
1030
|
|
|
@@ -1134,7 +1097,7 @@ void ScrollViewComponentView::StartBringIntoView(
|
|
|
1134
1097
|
scrollToHorizontal = options.TargetRect->getMidX() - (viewerWidth * options.HorizontalAlignmentRatio);
|
|
1135
1098
|
}
|
|
1136
1099
|
|
|
1137
|
-
if (needsScroll
|
|
1100
|
+
if (needsScroll) {
|
|
1138
1101
|
m_scrollVisual.TryUpdatePosition(
|
|
1139
1102
|
{static_cast<float>(scrollToHorizontal), static_cast<float>(scrollToVertical), 0.0f}, options.AnimationDesired);
|
|
1140
1103
|
}
|
|
@@ -1175,7 +1138,7 @@ winrt::Microsoft::ReactNative::Composition::Experimental::IVisual ScrollViewComp
|
|
|
1175
1138
|
updateStateWithContentOffset();
|
|
1176
1139
|
auto eventEmitter = GetEventEmitter();
|
|
1177
1140
|
if (eventEmitter) {
|
|
1178
|
-
facebook::react::
|
|
1141
|
+
facebook::react::ScrollViewEventEmitter::Metrics scrollMetrics;
|
|
1179
1142
|
scrollMetrics.containerSize.height = m_layoutMetrics.frame.size.height;
|
|
1180
1143
|
scrollMetrics.containerSize.width = m_layoutMetrics.frame.size.width;
|
|
1181
1144
|
scrollMetrics.contentOffset.x = args.Position().x / m_layoutMetrics.pointScaleFactor;
|
package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
#include <Utils/ValueUtils.h>
|
|
12
12
|
#include <tom.h>
|
|
13
13
|
#include <unicode.h>
|
|
14
|
-
#include <winrt/Microsoft.UI.Input.h>
|
|
15
14
|
#include <winrt/Windows.System.h>
|
|
16
15
|
#include <winrt/Windows.UI.h>
|
|
17
16
|
#include "../CompositionHelpers.h"
|
|
@@ -755,8 +754,8 @@ void WindowsTextInputComponentView::OnKeyDown(
|
|
|
755
754
|
// Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
|
|
756
755
|
// behavior We do forward Ctrl+Tab to the textinput.
|
|
757
756
|
if (args.Key() != winrt::Windows::System::VirtualKey::Tab ||
|
|
758
|
-
|
|
759
|
-
|
|
757
|
+
source.GetKeyState(winrt::Windows::System::VirtualKey::Control) ==
|
|
758
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down) {
|
|
760
759
|
WPARAM wParam = static_cast<WPARAM>(args.Key());
|
|
761
760
|
LPARAM lParam = 0;
|
|
762
761
|
lParam = args.KeyStatus().RepeatCount; // bits 0-15
|
|
@@ -785,8 +784,8 @@ void WindowsTextInputComponentView::OnKeyUp(
|
|
|
785
784
|
// Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
|
|
786
785
|
// behavior We do forward Ctrl+Tab to the textinput.
|
|
787
786
|
if (args.Key() != winrt::Windows::System::VirtualKey::Tab ||
|
|
788
|
-
|
|
789
|
-
|
|
787
|
+
source.GetKeyState(winrt::Windows::System::VirtualKey::Control) ==
|
|
788
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down) {
|
|
790
789
|
WPARAM wParam = static_cast<WPARAM>(args.Key());
|
|
791
790
|
LPARAM lParam = 1;
|
|
792
791
|
lParam = args.KeyStatus().RepeatCount; // bits 0-15
|
|
@@ -824,21 +823,16 @@ bool WindowsTextInputComponentView::ShouldSubmit(
|
|
|
824
823
|
// If 'submitKeyEvents' are supplied, use them to determine whether to emit onSubmitEditing' for either
|
|
825
824
|
// single-line or multi-line TextInput
|
|
826
825
|
if (args.KeyCode() == '\r') {
|
|
827
|
-
bool shiftDown =
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
winrt::
|
|
833
|
-
bool
|
|
834
|
-
|
|
835
|
-
winrt::
|
|
836
|
-
|
|
837
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
838
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down ||
|
|
839
|
-
(source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) &
|
|
840
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down) ==
|
|
841
|
-
winrt::Microsoft::UI::Input::VirtualKeyStates::Down;
|
|
826
|
+
bool shiftDown = source.GetKeyState(winrt::Windows::System::VirtualKey::Shift) ==
|
|
827
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down;
|
|
828
|
+
bool ctrlDown = source.GetKeyState(winrt::Windows::System::VirtualKey::Control) ==
|
|
829
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down;
|
|
830
|
+
bool altDown = source.GetKeyState(winrt::Windows::System::VirtualKey::Control) ==
|
|
831
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down;
|
|
832
|
+
bool metaDown = source.GetKeyState(winrt::Windows::System::VirtualKey::LeftWindows) ==
|
|
833
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down ||
|
|
834
|
+
source.GetKeyState(winrt::Windows::System::VirtualKey::RightWindows) ==
|
|
835
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down;
|
|
842
836
|
return (submitKeyEvent.shiftKey && shiftDown) || (submitKeyEvent.ctrlKey && ctrlDown) ||
|
|
843
837
|
(submitKeyEvent.altKey && altDown) || (submitKeyEvent.metaKey && metaDown) ||
|
|
844
838
|
(!submitKeyEvent.shiftKey && !submitKeyEvent.altKey && !submitKeyEvent.metaKey && !submitKeyEvent.altKey &&
|
|
@@ -859,8 +853,8 @@ void WindowsTextInputComponentView::OnCharacterReceived(
|
|
|
859
853
|
// Do not forward tab keys into the TextInput, since we want that to do the tab loop instead. This aligns with WinUI
|
|
860
854
|
// behavior We do forward Ctrl+Tab to the textinput.
|
|
861
855
|
if ((args.KeyCode() == '\t') &&
|
|
862
|
-
(
|
|
863
|
-
|
|
856
|
+
(source.GetKeyState(winrt::Windows::System::VirtualKey::Control) !=
|
|
857
|
+
winrt::Windows::UI::Core::CoreVirtualKeyStates::Down)) {
|
|
864
858
|
return;
|
|
865
859
|
}
|
|
866
860
|
|
|
@@ -953,6 +947,10 @@ void WindowsTextInputComponentView::onGotFocus(
|
|
|
953
947
|
LRESULT lresult;
|
|
954
948
|
DrawBlock db(*this);
|
|
955
949
|
m_textServices->TxSendMessage(WM_SETFOCUS, 0, 0, &lresult);
|
|
950
|
+
|
|
951
|
+
if (windowsTextInputProps().clearTextOnFocus) {
|
|
952
|
+
m_textServices->TxSetText(L"");
|
|
953
|
+
}
|
|
956
954
|
}
|
|
957
955
|
}
|
|
958
956
|
|
|
@@ -1118,8 +1116,6 @@ void WindowsTextInputComponentView::updateState(
|
|
|
1118
1116
|
return;
|
|
1119
1117
|
}
|
|
1120
1118
|
|
|
1121
|
-
auto data = m_state->getData();
|
|
1122
|
-
|
|
1123
1119
|
if (!oldState) {
|
|
1124
1120
|
m_mostRecentEventCount = m_state->getData().mostRecentEventCount;
|
|
1125
1121
|
}
|
|
@@ -1128,19 +1124,11 @@ void WindowsTextInputComponentView::updateState(
|
|
|
1128
1124
|
m_comingFromState = true;
|
|
1129
1125
|
// Only handle single/empty fragments right now -- ignore the other fragments
|
|
1130
1126
|
|
|
1131
|
-
LRESULT res;
|
|
1132
|
-
CHARRANGE cr;
|
|
1133
|
-
cr.cpMin = cr.cpMax = 0;
|
|
1134
|
-
winrt::check_hresult(m_textServices->TxSendMessage(EM_EXGETSEL, 0, reinterpret_cast<LPARAM>(&cr), &res));
|
|
1135
|
-
|
|
1136
1127
|
UpdateText(
|
|
1137
1128
|
m_state->getData().attributedString.getFragments().size()
|
|
1138
1129
|
? m_state->getData().attributedString.getFragments()[0].string
|
|
1139
1130
|
: "");
|
|
1140
1131
|
|
|
1141
|
-
winrt::check_hresult(
|
|
1142
|
-
m_textServices->TxSendMessage(EM_SETSEL, static_cast<WPARAM>(cr.cpMin), static_cast<LPARAM>(cr.cpMax), &res));
|
|
1143
|
-
|
|
1144
1132
|
m_comingFromState = false;
|
|
1145
1133
|
}
|
|
1146
1134
|
}
|
|
@@ -1159,7 +1147,8 @@ void WindowsTextInputComponentView::UpdateText(const std::string &str) noexcept
|
|
|
1159
1147
|
winrt::check_hresult(m_textServices->TxSendMessage(
|
|
1160
1148
|
EM_SETTEXTEX, reinterpret_cast<WPARAM>(&stt), reinterpret_cast<LPARAM>(str.c_str()), &res));
|
|
1161
1149
|
|
|
1162
|
-
winrt::check_hresult(
|
|
1150
|
+
winrt::check_hresult(
|
|
1151
|
+
m_textServices->TxSendMessage(EM_SETSEL, static_cast<WPARAM>(cr.cpMin), static_cast<LPARAM>(cr.cpMax), &res));
|
|
1163
1152
|
|
|
1164
1153
|
// enable colored emojis
|
|
1165
1154
|
winrt::check_hresult(
|
|
@@ -1222,7 +1211,7 @@ void WindowsTextInputComponentView::OnTextUpdated() noexcept {
|
|
|
1222
1211
|
}
|
|
1223
1212
|
|
|
1224
1213
|
void WindowsTextInputComponentView::OnSelectionChanged(LONG start, LONG end) noexcept {
|
|
1225
|
-
if (m_eventEmitter /* && !m_comingFromJS ?? */) {
|
|
1214
|
+
if (m_eventEmitter && !m_comingFromState /* && !m_comingFromJS ?? */) {
|
|
1226
1215
|
auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
|
|
1227
1216
|
facebook::react::WindowsTextInputEventEmitter::OnSelectionChange onSelectionChangeArgs;
|
|
1228
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 =
|
|
@@ -194,17 +182,7 @@ void FabricUIManager::constraintSurfaceLayout(
|
|
|
194
182
|
m_surfaceManager->constraintSurfaceLayout(surfaceId, layoutConstraints, layoutContext);
|
|
195
183
|
}
|
|
196
184
|
|
|
197
|
-
|
|
198
|
-
FabricUIManager::NotifyMountedId() noexcept {
|
|
199
|
-
return {L"ReactNative.Fabric", L"Mounted"};
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
void FabricUIManager::didMountComponentsWithRootTag(facebook::react::SurfaceId surfaceId) noexcept {
|
|
203
|
-
m_context.UIDispatcher().Post([context = m_context, self = shared_from_this(), surfaceId]() {
|
|
204
|
-
self->m_scheduler->reportMount(surfaceId);
|
|
205
|
-
context.Notifications().SendNotification(NotifyMountedId(), surfaceId);
|
|
206
|
-
});
|
|
207
|
-
}
|
|
185
|
+
void FabricUIManager::didMountComponentsWithRootTag(facebook::react::SurfaceId surfaceId) noexcept {}
|
|
208
186
|
|
|
209
187
|
void FabricUIManager::RCTPerformMountInstructions(
|
|
210
188
|
facebook::react::ShadowViewMutationList const &mutations,
|
|
@@ -222,25 +200,11 @@ void FabricUIManager::RCTPerformMountInstructions(
|
|
|
222
200
|
}
|
|
223
201
|
|
|
224
202
|
case facebook::react::ShadowViewMutation::Delete: {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
auto &oldChildShadowView = mutation.oldChildShadowView;
|
|
231
|
-
auto &oldChildViewDescriptor = m_registry.componentViewDescriptorWithTag(oldChildShadowView.tag);
|
|
232
|
-
// observerCoordinator.unregisterViewComponentDescriptor(oldChildViewDescriptor, surfaceId);
|
|
233
|
-
#ifdef DETECT_COMPONENT_OUTLIVE_DELETE_MUTATION
|
|
234
|
-
wkView = winrt::make_weak(oldChildViewDescriptor.view);
|
|
235
|
-
#endif
|
|
236
|
-
m_registry.enqueueComponentViewWithComponentHandle(
|
|
237
|
-
oldChildShadowView.componentHandle, oldChildShadowView.tag, oldChildViewDescriptor);
|
|
238
|
-
}
|
|
239
|
-
#ifdef DETECT_COMPONENT_OUTLIVE_DELETE_MUTATION
|
|
240
|
-
// After handling a delete mutation, nothing should be holding on to the view. If there is thats an indication
|
|
241
|
-
// of a leak, or at least something holding on to a view longer than it should
|
|
242
|
-
assert(!wkView.get());
|
|
243
|
-
#endif
|
|
203
|
+
auto &oldChildShadowView = mutation.oldChildShadowView;
|
|
204
|
+
auto &oldChildViewDescriptor = m_registry.componentViewDescriptorWithTag(oldChildShadowView.tag);
|
|
205
|
+
// observerCoordinator.unregisterViewComponentDescriptor(oldChildViewDescriptor, surfaceId);
|
|
206
|
+
m_registry.enqueueComponentViewWithComponentHandle(
|
|
207
|
+
oldChildShadowView.componentHandle, oldChildShadowView.tag, oldChildViewDescriptor);
|
|
244
208
|
break;
|
|
245
209
|
}
|
|
246
210
|
|
|
@@ -348,9 +312,6 @@ void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::
|
|
|
348
312
|
}
|
|
349
313
|
|
|
350
314
|
void FabricUIManager::schedulerDidFinishTransaction(
|
|
351
|
-
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) {}
|
|
352
|
-
|
|
353
|
-
void FabricUIManager::schedulerShouldRenderTransactions(
|
|
354
315
|
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) {
|
|
355
316
|
// Should cache this locally
|
|
356
317
|
|
|
@@ -362,9 +323,17 @@ void FabricUIManager::schedulerShouldRenderTransactions(
|
|
|
362
323
|
}
|
|
363
324
|
}
|
|
364
325
|
|
|
365
|
-
void FabricUIManager::
|
|
366
|
-
facebook::react::
|
|
367
|
-
|
|
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) {
|
|
368
337
|
// iOS does not do this optimization, but Android does. It maybe that android's allocations are more expensive due to
|
|
369
338
|
// the Java boundary.
|
|
370
339
|
// TODO: We should do some perf tests to see if this is worth doing.
|
|
@@ -52,8 +52,6 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
52
52
|
winrt::Microsoft::ReactNative::ReactNativeIsland GetReactNativeIsland(
|
|
53
53
|
facebook::react::SurfaceId surfaceId) const noexcept;
|
|
54
54
|
|
|
55
|
-
static winrt::Microsoft::ReactNative::ReactNotificationId<facebook::react::SurfaceId> NotifyMountedId() noexcept;
|
|
56
|
-
|
|
57
55
|
private:
|
|
58
56
|
void installFabricUIManager() noexcept;
|
|
59
57
|
void initiateTransaction(facebook::react::MountingCoordinator::Shared mountingCoordinator);
|
|
@@ -81,13 +79,11 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
81
79
|
std::unordered_map<facebook::react::SurfaceId, SurfaceInfo> m_surfaceRegistry;
|
|
82
80
|
|
|
83
81
|
// Inherited via SchedulerDelegate
|
|
84
|
-
virtual void schedulerShouldRenderTransactions(
|
|
85
|
-
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
|
|
86
82
|
virtual void schedulerDidFinishTransaction(
|
|
87
83
|
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
|
|
88
|
-
virtual void
|
|
89
|
-
facebook::react::
|
|
90
|
-
|
|
84
|
+
virtual void schedulerShouldRenderTransactions(
|
|
85
|
+
const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
|
|
86
|
+
virtual void schedulerDidRequestPreliminaryViewAllocation(const facebook::react::ShadowNode &shadowView) override;
|
|
91
87
|
virtual void schedulerDidDispatchCommand(
|
|
92
88
|
facebook::react::ShadowView const &shadowView,
|
|
93
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
|