react-native-windows 0.84.0 → 0.85.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +1 -5
- package/Directory.Build.props +1 -16
- package/Directory.Build.targets +12 -4
- package/Folly/ThreadNameStub.cpp +4 -6
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Animated/Animated.d.ts +8 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -4
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/animations/Animation.js +3 -3
- package/Libraries/Animated/animations/DecayAnimation.js +4 -4
- package/Libraries/Animated/animations/SpringAnimation.js +5 -5
- package/Libraries/Animated/animations/TimingAnimation.js +5 -5
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
- package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
- package/Libraries/Animated/useAnimatedColor.js +25 -0
- package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValueXY.js +26 -0
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +3 -3
- package/Libraries/BatchedBridge/NativeModules.js +12 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.windows.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
- package/Libraries/Components/Keyboard/Keyboard.js +6 -6
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
- package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
- package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
- package/Libraries/Components/ScrollView/ScrollView.js +19 -9
- package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +8 -8
- package/Libraries/Components/Switch/Switch.js +3 -3
- package/Libraries/Components/Switch/Switch.windows.js +3 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
- package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
- package/Libraries/Components/TextInput/TextInput.js +8 -4
- package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
- package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
- package/Libraries/Components/View/View.windows.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +7 -7
- package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
- package/Libraries/Components/View/ViewPropTypes.js +14 -14
- package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
- package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ExtendedError.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +3 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +4 -2
- package/Libraries/Core/setUpReactDevTools.js +23 -6
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +2 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
- package/Libraries/Image/Image.android.js +172 -306
- package/Libraries/Image/ImageProps.js +9 -11
- package/Libraries/Image/ImageSource.js +2 -2
- package/Libraries/Image/ImageSourceUtils.js +8 -4
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/ImageViewNativeComponent.js +7 -16
- package/Libraries/Image/nativeImageSource.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +5 -4
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +3 -3
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +38 -24
- package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
- package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
- package/Libraries/LogBox/LogBox.js +42 -19
- package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
- package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
- package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.d.ts +4 -0
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/Modal/Modal.windows.js +7 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +5 -5
- package/Libraries/Pressability/Pressability.windows.js +5 -5
- package/Libraries/Pressability/PressabilityDebug.js +1 -1
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/Pressability/usePressability.js +3 -14
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +18 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +4 -4
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
- package/Libraries/Renderer/shims/ReactFabric.js +1 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
- package/Libraries/Renderer/shims/ReactNative.js +3 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
- package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
- package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
- package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
- package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
- package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
- package/Libraries/StyleSheet/processBoxShadow.js +44 -4
- package/Libraries/StyleSheet/processColorArray.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +2 -2
- package/Libraries/Text/Text.js +295 -627
- package/Libraries/Text/Text.windows.js +342 -717
- package/Libraries/Text/TextNativeComponent.js +14 -7
- package/Libraries/Text/TextProps.js +4 -4
- package/Libraries/Text/TextProps.windows.js +4 -4
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +21 -21
- package/Libraries/Types/CoreEventTypes.windows.js +21 -21
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/HMRClient.js +32 -5
- package/Libraries/Utilities/IPerformanceLogger.js +4 -4
- package/Libraries/Utilities/codegenNativeCommands.js +4 -4
- package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -3
- package/Libraries/Utilities/useMergeRefs.js +2 -2
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +16 -20
- package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
- package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +3 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +2 -7
- package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -61
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
- package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
- package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
- package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
- package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
- package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
- package/Microsoft.ReactNative/QuirkSettings.h +0 -43
- package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
- package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
- package/Microsoft.ReactNative/ReactHost/React.h +0 -5
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
- package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
- package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
- package/Microsoft.ReactNative/RedBox.cpp +0 -9
- package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
- package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
- package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
- package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
- package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
- package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
- package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
- package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
- package/PropertySheets/Autolink.props +1 -1
- package/PropertySheets/Bundle.props +1 -1
- package/PropertySheets/Codegen.props +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/NuGet.LockFile.props +8 -0
- package/PropertySheets/React.Cpp.props +4 -4
- package/PropertySheets/ReactNativeArchitecture.props +6 -24
- package/ReactCommon/ReactCommon.vcxproj +5 -6
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
- package/Scripts/OfficeReact.Win32.nuspec +0 -1
- package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
- package/Scripts/creaternwapp.cmd +1 -9
- package/Scripts/creaternwlib.cmd +4 -24
- package/Shared/DevSettings.h +0 -3
- package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
- package/Shared/Networking/WinRTWebSocketResource.h +3 -119
- package/Shared/Shared.vcxitems +63 -38
- package/Shared/Shared.vcxitems.filters +54 -0
- package/Shared/Utils.cpp +0 -88
- package/Shared/Utils.h +0 -14
- package/Shared/WebSocketResourceFactory.cpp +28 -0
- package/Shared/tracing/fbsystrace.h +1 -0
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
- package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
- package/codegen/react/components/rnwcore/Props.cpp +17 -7
- package/codegen/react/components/rnwcore/Props.h +3 -1
- package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
- package/codegen/rnwcoreJSI.h +93 -77
- package/index.js +9 -0
- package/index.windows.js +9 -0
- package/jest/RefreshControlMock.js +2 -2
- package/jest/assetFileTransformer.js +8 -3
- package/jest/mockComponent.js +3 -4
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mocks/ActivityIndicator.js +2 -2
- package/jest/mocks/Image.js +2 -2
- package/jest/mocks/Modal.js +2 -2
- package/jest/mocks/RefreshControl.js +3 -3
- package/jest/mocks/RendererProxy.js +2 -2
- package/jest/mocks/ScrollView.js +5 -5
- package/jest/mocks/Text.js +2 -2
- package/jest/mocks/TextInput.js +2 -2
- package/jest/mocks/View.js +2 -2
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/mocks/requireNativeComponent.js +1 -1
- package/jest/mocks/useColorScheme.js +1 -1
- package/jest/setup.js +68 -31
- package/package.json +27 -22
- package/src/private/animated/NativeAnimatedHelper.js +2 -2
- package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
- package/src/private/components/virtualview/VirtualView.js +14 -21
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
- package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
- package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/utilities/toError.js +27 -0
- package/src/private/utilities/toExtendedError.js +30 -0
- package/src/private/webapis/dom/events/Event.js +1 -1
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
- package/src/private/webapis/dom/events/EventTarget.js +3 -3
- package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
- package/src/private/webapis/performance/LongTasks.js +3 -3
- package/src/private/webapis/performance/Performance.js +4 -4
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
- package/src/private/webapis/structuredClone/structuredClone.js +2 -2
- package/src/types/globals.d.ts +4 -4
- package/template/cpp-lib/proj/MyLib.sln +0 -33
- package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
- package/template/cs-lib/proj/MyLib.sln +0 -33
- package/template/metro.config.js +12 -2
- package/templates/cpp-app/metro.config.js +12 -2
- package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +1 -1
- package/templates/cpp-app/windows/MyApp.sln +0 -33
- package/templates/cpp-lib/example/metro.config.js +12 -2
- package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +1 -1
- package/templates/cpp-lib/windows/MyLib.sln +0 -33
- package/types/index.d.ts +2 -0
- package/Folly/.clang-format +0 -2
- package/Folly/Folly.natvis +0 -25
- package/Folly/Folly.vcxproj +0 -378
- package/Folly/Folly.vcxproj.filters +0 -558
- package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
- package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
- package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
- package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
- package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
- package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
- package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
- package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
- package/Folly/cgmanifest.json +0 -25
- package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
- package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
- package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
- package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
- package/Microsoft.ReactNative/ReactSupport.h +0 -13
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
- package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
- package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -23
- package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
- package/Microsoft.ReactNative/XamlUIService.h +0 -37
- package/Microsoft.ReactNative/XamlUIService.idl +0 -53
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
- package/fmt/.clang-format +0 -2
- package/fmt/cgmanifest.json +0 -15
- package/fmt/fmt.vcxproj +0 -153
- package/fmt/fmt.vcxproj.filters +0 -59
- package/fmt/pch.cpp +0 -4
- package/fmt/pch.h +0 -2
|
@@ -38,9 +38,11 @@ constexpr float FOCUS_VISUAL_RADIUS = 3.0f;
|
|
|
38
38
|
|
|
39
39
|
// m_outerVisual
|
|
40
40
|
// |
|
|
41
|
-
// ----- m_visual
|
|
41
|
+
// ----- m_visual - Can be a custom visual depending on Component type
|
|
42
42
|
// |
|
|
43
|
-
// -----
|
|
43
|
+
// ----- m_backgroundVisual <-- Background / clip (ComponentViewFeatures::Background)
|
|
44
|
+
// ----- Border Visuals x N (BorderPrimitive attached to m_visual) (ComponentViewFeatures::NativeBorder)
|
|
45
|
+
// ----- Outline Visuals x N(BorderPrimitive) (ComponentViewFeatures::NativeBorder)
|
|
44
46
|
// ----- <children> (default: directly in m_visual after border visuals)
|
|
45
47
|
// ----- m_childrenContainer (created on demand when overflow:hidden, children moved here)
|
|
46
48
|
// ------Focus Visual Container (created when hosting focus visuals)
|
|
@@ -79,18 +81,16 @@ facebook::react::Props::Shared ComponentView::props() noexcept {
|
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
void ComponentView::onThemeChanged() noexcept {
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
Visual().as<Experimental::ISpriteVisual>().Brush(theme()->Brush(*viewProps()->backgroundColor));
|
|
85
|
-
} else {
|
|
86
|
-
Visual().as<Experimental::ISpriteVisual>().Brush(nullptr);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
84
|
+
if (m_backgroundVisual)
|
|
85
|
+
m_backgroundVisual.Brush(theme()->Brush(*viewProps()->backgroundColor));
|
|
89
86
|
|
|
90
87
|
if (m_borderPrimitive) {
|
|
91
88
|
m_borderPrimitive->onThemeChanged(
|
|
92
89
|
m_layoutMetrics, BorderPrimitive::resolveAndAlignBorderMetrics(m_layoutMetrics, *viewProps()));
|
|
93
90
|
}
|
|
91
|
+
if (m_outlinePrimitive) {
|
|
92
|
+
m_outlinePrimitive->onThemeChanged(outlineLayoutMetrics(), outlineBorderMetrics());
|
|
93
|
+
}
|
|
94
94
|
if (m_componentHostingFocusVisual) {
|
|
95
95
|
if (m_componentHostingFocusVisual->m_focusPrimitive->m_focusInnerPrimitive) {
|
|
96
96
|
auto innerFocusMetrics = focusLayoutMetrics(true /*inner*/);
|
|
@@ -154,10 +154,18 @@ void ComponentView::updateProps(
|
|
|
154
154
|
|
|
155
155
|
if ((m_flags & ComponentViewFeatures::Background) == ComponentViewFeatures::Background) {
|
|
156
156
|
if (oldViewProps.backgroundColor != newViewProps.backgroundColor) {
|
|
157
|
-
if (newViewProps.backgroundColor) {
|
|
158
|
-
|
|
157
|
+
if (facebook::react::isColorMeaningful(newViewProps.backgroundColor)) {
|
|
158
|
+
if (!m_backgroundVisual) {
|
|
159
|
+
m_backgroundVisual = m_compContext.CreateSpriteVisual();
|
|
160
|
+
m_backgroundVisual.RelativeSizeWithOffset({0, 0}, {1.0f, 1.0f});
|
|
161
|
+
Visual().InsertAt(m_backgroundVisual, 0);
|
|
162
|
+
}
|
|
163
|
+
m_backgroundVisual.Brush(theme()->Brush(*newViewProps.backgroundColor));
|
|
164
|
+
updateClippingPath(m_layoutMetrics, *viewProps());
|
|
159
165
|
} else {
|
|
160
|
-
|
|
166
|
+
if (m_backgroundVisual) {
|
|
167
|
+
m_backgroundVisual.Brush(nullptr);
|
|
168
|
+
}
|
|
161
169
|
}
|
|
162
170
|
}
|
|
163
171
|
}
|
|
@@ -166,6 +174,16 @@ void ComponentView::updateProps(
|
|
|
166
174
|
m_borderPrimitive->updateProps(oldViewProps, newViewProps);
|
|
167
175
|
}
|
|
168
176
|
|
|
177
|
+
if (m_outlinePrimitive) {
|
|
178
|
+
if (oldViewProps.outlineOffset != newViewProps.outlineOffset ||
|
|
179
|
+
oldViewProps.outlineWidth != newViewProps.outlineWidth ||
|
|
180
|
+
oldViewProps.borderRadii != newViewProps.borderRadii ||
|
|
181
|
+
oldViewProps.outlineColor != newViewProps.outlineColor ||
|
|
182
|
+
oldViewProps.outlineStyle != newViewProps.outlineStyle) {
|
|
183
|
+
m_outlinePrimitive->markNeedsUpdate();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
169
187
|
if (m_componentHostingFocusVisual) {
|
|
170
188
|
if (!newViewProps.enableFocusRing) {
|
|
171
189
|
m_componentHostingFocusVisual->hostFocusVisual(false, get_strong());
|
|
@@ -200,8 +218,9 @@ void ComponentView::updateProps(
|
|
|
200
218
|
void ComponentView::updateLayoutMetrics(
|
|
201
219
|
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
202
220
|
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
|
|
221
|
+
updateClippingPath(layoutMetrics, *viewProps());
|
|
222
|
+
|
|
203
223
|
if ((m_flags & ComponentViewFeatures::NativeBorder) == ComponentViewFeatures::NativeBorder) {
|
|
204
|
-
updateClippingPath(layoutMetrics, *viewProps());
|
|
205
224
|
OuterVisual().Size(
|
|
206
225
|
{layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
|
|
207
226
|
layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
|
|
@@ -218,6 +237,9 @@ void ComponentView::updateLayoutMetrics(
|
|
|
218
237
|
if (m_borderPrimitive) {
|
|
219
238
|
m_borderPrimitive->markNeedsUpdate();
|
|
220
239
|
}
|
|
240
|
+
if (m_outlinePrimitive) {
|
|
241
|
+
m_outlinePrimitive->markNeedsUpdate();
|
|
242
|
+
}
|
|
221
243
|
|
|
222
244
|
if (m_componentHostingFocusVisual) {
|
|
223
245
|
m_componentHostingFocusVisual->updateFocusLayoutMetrics();
|
|
@@ -301,6 +323,23 @@ void ComponentView::FinalizeUpdates(winrt::Microsoft::ReactNative::ComponentView
|
|
|
301
323
|
if (m_borderPrimitive) {
|
|
302
324
|
m_borderPrimitive->finalize(m_layoutMetrics, borderMetrics);
|
|
303
325
|
}
|
|
326
|
+
|
|
327
|
+
auto outlineMetrics = outlineBorderMetrics();
|
|
328
|
+
if (!m_outlinePrimitive && BorderPrimitive::requiresBorder(outlineMetrics, theme())) {
|
|
329
|
+
m_outlinePrimitive = std::make_shared<BorderPrimitive>(*this);
|
|
330
|
+
Visual().InsertAt(
|
|
331
|
+
m_outlinePrimitive->RootVisual(),
|
|
332
|
+
(m_backgroundVisual ? 1 : 0) + (m_borderPrimitive ? m_borderPrimitive->numberOfVisuals() : 0));
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
if (m_outlinePrimitive) {
|
|
336
|
+
auto offset = pixelRoundAndScaleBorderWidth(viewProps()->outlineWidth, m_layoutMetrics.pointScaleFactor) +
|
|
337
|
+
std::round(viewProps()->outlineOffset * m_layoutMetrics.pointScaleFactor);
|
|
338
|
+
m_outlinePrimitive->RootVisual().Offset({-offset, -offset, 0.0f});
|
|
339
|
+
m_outlinePrimitive->RootVisual().RelativeSizeWithOffset({offset * 2, offset * 2}, {1.0f, 1.0f});
|
|
340
|
+
|
|
341
|
+
m_outlinePrimitive->finalize(outlineLayoutMetrics(), outlineMetrics);
|
|
342
|
+
}
|
|
304
343
|
}
|
|
305
344
|
|
|
306
345
|
if (m_componentHostingFocusVisual) {
|
|
@@ -581,6 +620,67 @@ facebook::react::LayoutMetrics ComponentView::focusLayoutMetrics(bool inner) con
|
|
|
581
620
|
return layoutMetrics;
|
|
582
621
|
}
|
|
583
622
|
|
|
623
|
+
facebook::react::LayoutMetrics ComponentView::outlineLayoutMetrics() const noexcept {
|
|
624
|
+
auto &props = *viewProps();
|
|
625
|
+
auto offset = (pixelRoundAndScaleBorderWidth(viewProps()->outlineWidth, m_layoutMetrics.pointScaleFactor) +
|
|
626
|
+
std::round(viewProps()->outlineOffset * m_layoutMetrics.pointScaleFactor)) /
|
|
627
|
+
m_layoutMetrics.pointScaleFactor;
|
|
628
|
+
facebook::react::LayoutMetrics layoutMetrics = m_layoutMetrics;
|
|
629
|
+
layoutMetrics.frame.origin.x -= offset;
|
|
630
|
+
layoutMetrics.frame.origin.y -= offset;
|
|
631
|
+
layoutMetrics.frame.size.height += offset * 2;
|
|
632
|
+
layoutMetrics.frame.size.width += offset * 2;
|
|
633
|
+
return layoutMetrics;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
facebook::react::BorderMetrics ComponentView::outlineBorderMetrics() const noexcept {
|
|
637
|
+
auto &props = *viewProps();
|
|
638
|
+
|
|
639
|
+
facebook::react::BorderMetrics metrics = BorderPrimitive::resolveAndAlignBorderMetrics(m_layoutMetrics, props);
|
|
640
|
+
metrics.borderColors.bottom = metrics.borderColors.left = metrics.borderColors.right = metrics.borderColors.top =
|
|
641
|
+
props.outlineColor;
|
|
642
|
+
|
|
643
|
+
auto offset = pixelRoundAndScaleBorderWidth(viewProps()->outlineWidth, m_layoutMetrics.pointScaleFactor) +
|
|
644
|
+
std::round(viewProps()->outlineOffset * m_layoutMetrics.pointScaleFactor);
|
|
645
|
+
|
|
646
|
+
if (metrics.borderRadii.bottomLeft.horizontal)
|
|
647
|
+
metrics.borderRadii.bottomLeft.horizontal = std::max(0.0f, metrics.borderRadii.bottomLeft.horizontal + offset);
|
|
648
|
+
if (metrics.borderRadii.bottomLeft.vertical)
|
|
649
|
+
metrics.borderRadii.bottomLeft.vertical = std::max(0.0f, metrics.borderRadii.bottomLeft.vertical + offset);
|
|
650
|
+
if (metrics.borderRadii.bottomRight.horizontal)
|
|
651
|
+
metrics.borderRadii.bottomRight.horizontal = std::max(0.0f, metrics.borderRadii.bottomRight.horizontal + offset);
|
|
652
|
+
if (metrics.borderRadii.bottomRight.vertical)
|
|
653
|
+
metrics.borderRadii.bottomRight.vertical = std::max(0.0f, metrics.borderRadii.bottomRight.vertical + offset);
|
|
654
|
+
if (metrics.borderRadii.topLeft.horizontal)
|
|
655
|
+
metrics.borderRadii.topLeft.horizontal = std::max(0.0f, metrics.borderRadii.topLeft.horizontal + offset);
|
|
656
|
+
if (metrics.borderRadii.topLeft.vertical)
|
|
657
|
+
metrics.borderRadii.topLeft.vertical = std::max(0.0f, metrics.borderRadii.topLeft.vertical + offset);
|
|
658
|
+
if (metrics.borderRadii.topRight.horizontal)
|
|
659
|
+
metrics.borderRadii.topRight.horizontal = std::max(0.0f, metrics.borderRadii.topRight.horizontal + offset);
|
|
660
|
+
if (metrics.borderRadii.topRight.vertical)
|
|
661
|
+
metrics.borderRadii.topRight.vertical = std::max(0.0f, metrics.borderRadii.topRight.vertical + offset);
|
|
662
|
+
|
|
663
|
+
static_assert(
|
|
664
|
+
facebook::react::BorderStyle::Solid ==
|
|
665
|
+
static_cast<facebook::react::BorderStyle>(facebook::react::OutlineStyle::Solid));
|
|
666
|
+
static_assert(
|
|
667
|
+
facebook::react::BorderStyle::Dotted ==
|
|
668
|
+
static_cast<facebook::react::BorderStyle>(facebook::react::OutlineStyle::Dotted));
|
|
669
|
+
static_assert(
|
|
670
|
+
facebook::react::BorderStyle::Dashed ==
|
|
671
|
+
static_cast<facebook::react::BorderStyle>(facebook::react::OutlineStyle::Dashed));
|
|
672
|
+
assert(
|
|
673
|
+
props.outlineStyle == facebook::react::OutlineStyle::Solid ||
|
|
674
|
+
props.outlineStyle == facebook::react::OutlineStyle::Dotted ||
|
|
675
|
+
props.outlineStyle == facebook::react::OutlineStyle::Dashed);
|
|
676
|
+
metrics.borderStyles.bottom = metrics.borderStyles.left = metrics.borderStyles.right = metrics.borderStyles.top =
|
|
677
|
+
static_cast<facebook::react::BorderStyle>(props.outlineStyle);
|
|
678
|
+
|
|
679
|
+
metrics.borderWidths.bottom = metrics.borderWidths.left = metrics.borderWidths.right = metrics.borderWidths.top =
|
|
680
|
+
pixelRoundAndScaleBorderWidth(viewProps()->outlineWidth, m_layoutMetrics.pointScaleFactor);
|
|
681
|
+
return metrics;
|
|
682
|
+
}
|
|
683
|
+
|
|
584
684
|
facebook::react::BorderMetrics ComponentView::focusBorderMetrics(
|
|
585
685
|
bool inner,
|
|
586
686
|
const facebook::react::LayoutMetrics &layoutMetrics) const noexcept {
|
|
@@ -654,7 +754,7 @@ void ComponentView::hostFocusVisual(bool show, winrt::com_ptr<ComponentView> vie
|
|
|
654
754
|
assert(
|
|
655
755
|
view.get() ==
|
|
656
756
|
this); // When not using lifted comp, focus visuals should always host within their own component
|
|
657
|
-
OuterVisual().InsertAt(m_focusPrimitive->m_focusVisual, 1);
|
|
757
|
+
OuterVisual().InsertAt(m_focusPrimitive->m_focusVisual, (m_backgroundVisual ? 2 : 1));
|
|
658
758
|
}
|
|
659
759
|
}
|
|
660
760
|
|
|
@@ -898,9 +998,23 @@ void ComponentView::Toggle() noexcept {
|
|
|
898
998
|
// no-op
|
|
899
999
|
}
|
|
900
1000
|
|
|
1001
|
+
// This offset ensures that the m_borderPrimitive inserts its layers above the background
|
|
1002
|
+
int32_t ComponentView::borderInsertAtIndex() const noexcept {
|
|
1003
|
+
return m_backgroundVisual ? 1 : 0;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual ComponentView::VisualToApplyBackgroundClipTo()
|
|
1007
|
+
const noexcept {
|
|
1008
|
+
return m_backgroundVisual;
|
|
1009
|
+
}
|
|
1010
|
+
|
|
901
1011
|
void ComponentView::updateClippingPath(
|
|
902
1012
|
facebook::react::LayoutMetrics const &layoutMetrics,
|
|
903
1013
|
const facebook::react::ViewProps &viewProps) noexcept {
|
|
1014
|
+
auto clipTarget = VisualToApplyBackgroundClipTo();
|
|
1015
|
+
if (!clipTarget)
|
|
1016
|
+
return;
|
|
1017
|
+
|
|
904
1018
|
auto borderMetrics = BorderPrimitive::resolveAndAlignBorderMetrics(layoutMetrics, viewProps);
|
|
905
1019
|
|
|
906
1020
|
bool hasRoundedCorners = borderMetrics.borderRadii.topLeft.horizontal != 0 ||
|
|
@@ -919,10 +1033,10 @@ void ComponentView::updateClippingPath(
|
|
|
919
1033
|
winrt::com_ptr<ID2D1PathGeometry> pathGeometry = BorderPrimitive::GenerateRoundedRectPathGeometry(
|
|
920
1034
|
m_compContext, borderMetrics.borderRadii, {0, 0, 0, 0}, {0, 0, viewWidth, viewHeight});
|
|
921
1035
|
|
|
922
|
-
|
|
1036
|
+
clipTarget.as<::Microsoft::ReactNative::Composition::Experimental::IVisualInterop>()->SetClippingPath(
|
|
923
1037
|
pathGeometry.get());
|
|
924
1038
|
} else {
|
|
925
|
-
|
|
1039
|
+
clipTarget.as<::Microsoft::ReactNative::Composition::Experimental::IVisualInterop>()->SetClippingPath(nullptr);
|
|
926
1040
|
}
|
|
927
1041
|
}
|
|
928
1042
|
|
|
@@ -934,6 +1048,9 @@ void ComponentView::indexOffsetForBorder(uint32_t &index) const noexcept {
|
|
|
934
1048
|
if (m_borderPrimitive) {
|
|
935
1049
|
index += m_borderPrimitive->numberOfVisuals();
|
|
936
1050
|
}
|
|
1051
|
+
if (m_outlinePrimitive) {
|
|
1052
|
+
index += 1;
|
|
1053
|
+
}
|
|
937
1054
|
}
|
|
938
1055
|
|
|
939
1056
|
void ComponentView::OnRenderingDeviceLost() noexcept {}
|
|
@@ -1084,7 +1201,7 @@ void ViewComponentView::ensureVisual() noexcept {
|
|
|
1084
1201
|
} else {
|
|
1085
1202
|
m_visual = createVisual();
|
|
1086
1203
|
}
|
|
1087
|
-
OuterVisual().InsertAt(m_visual, 0);
|
|
1204
|
+
OuterVisual().InsertAt(m_visual, m_backgroundVisual ? 1 : 0);
|
|
1088
1205
|
}
|
|
1089
1206
|
}
|
|
1090
1207
|
|
|
@@ -1382,7 +1499,7 @@ void ViewComponentView::updateChildrenClippingPath(
|
|
|
1382
1499
|
}
|
|
1383
1500
|
|
|
1384
1501
|
// Insert m_childrenContainer after border visuals in m_visual
|
|
1385
|
-
Visual().InsertAt(m_childrenContainer, borderCount);
|
|
1502
|
+
Visual().InsertAt(m_childrenContainer, (m_backgroundVisual ? 1 : 0) + borderCount);
|
|
1386
1503
|
|
|
1387
1504
|
// Use relative sizing so container automatically tracks parent's size
|
|
1388
1505
|
m_childrenContainer.RelativeSizeWithOffset({0, 0}, {1, 1});
|
|
@@ -111,6 +111,9 @@ struct ComponentView : public ComponentViewT<
|
|
|
111
111
|
bool getAcccessiblityIsReadOnly() noexcept override;
|
|
112
112
|
ToggleState getToggleState() noexcept override;
|
|
113
113
|
void Toggle() noexcept override;
|
|
114
|
+
|
|
115
|
+
int32_t borderInsertAtIndex() const noexcept;
|
|
116
|
+
|
|
114
117
|
virtual winrt::Microsoft::ReactNative::implementation::ClipState getClipState() noexcept;
|
|
115
118
|
|
|
116
119
|
virtual std::pair<facebook::react::Cursor, HCURSOR> cursor() const noexcept;
|
|
@@ -130,6 +133,8 @@ struct ComponentView : public ComponentViewT<
|
|
|
130
133
|
void ThemeChanged(winrt::event_token const &token) noexcept;
|
|
131
134
|
|
|
132
135
|
protected:
|
|
136
|
+
virtual winrt::Microsoft::ReactNative::Composition::Experimental::IVisual VisualToApplyBackgroundClipTo()
|
|
137
|
+
const noexcept;
|
|
133
138
|
bool anyHitTestHelper(
|
|
134
139
|
facebook::react::Tag &targetTag,
|
|
135
140
|
facebook::react::Point &ptContent,
|
|
@@ -141,6 +146,7 @@ struct ComponentView : public ComponentViewT<
|
|
|
141
146
|
winrt::Microsoft::ReactNative::Composition::Experimental::ICompositionContext m_compContext;
|
|
142
147
|
comp::CompositionPropertySet m_centerPropSet{nullptr};
|
|
143
148
|
facebook::react::SharedViewEventEmitter m_eventEmitter;
|
|
149
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::ISpriteVisual m_backgroundVisual{nullptr};
|
|
144
150
|
|
|
145
151
|
private:
|
|
146
152
|
void updateFocusLayoutMetrics() noexcept;
|
|
@@ -157,6 +163,9 @@ struct ComponentView : public ComponentViewT<
|
|
|
157
163
|
facebook::react::BorderMetrics focusBorderMetrics(bool inner, const facebook::react::LayoutMetrics &layoutMetrics)
|
|
158
164
|
const noexcept;
|
|
159
165
|
|
|
166
|
+
facebook::react::LayoutMetrics outlineLayoutMetrics() const noexcept;
|
|
167
|
+
facebook::react::BorderMetrics outlineBorderMetrics() const noexcept;
|
|
168
|
+
|
|
160
169
|
virtual winrt::Microsoft::ReactNative::Composition::Experimental::IVisual visualToHostFocus() noexcept;
|
|
161
170
|
virtual winrt::com_ptr<ComponentView> focusVisualRoot(const facebook::react::Rect &focusRect) noexcept;
|
|
162
171
|
|
|
@@ -168,6 +177,7 @@ struct ComponentView : public ComponentViewT<
|
|
|
168
177
|
winrt::com_ptr<ComponentView>
|
|
169
178
|
m_componentHostingFocusVisual; // The component that we are showing our focus visuals within
|
|
170
179
|
std::shared_ptr<BorderPrimitive> m_borderPrimitive;
|
|
180
|
+
std::shared_ptr<BorderPrimitive> m_outlinePrimitive;
|
|
171
181
|
std::unique_ptr<FocusPrimitive> m_focusPrimitive{nullptr};
|
|
172
182
|
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual m_outerVisual{nullptr};
|
|
173
183
|
winrt::event<winrt::Windows::Foundation::EventHandler<winrt::IInspectable>> m_themeChangedEvent;
|
|
@@ -189,14 +189,14 @@ void ImageComponentView::setStateAndResubscribeImageResponseObserver(
|
|
|
189
189
|
facebook::react::ImageShadowNode::ConcreteState::Shared const &state) noexcept {
|
|
190
190
|
if (m_state) {
|
|
191
191
|
auto &observerCoordinator = m_state->getData().getImageRequest().getObserverCoordinator();
|
|
192
|
-
observerCoordinator.removeObserver(
|
|
192
|
+
observerCoordinator.removeObserver(m_imageResponseObserver);
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
m_state = state;
|
|
196
196
|
|
|
197
197
|
if (m_state) {
|
|
198
198
|
auto &observerCoordinator = m_state->getData().getImageRequest().getObserverCoordinator();
|
|
199
|
-
observerCoordinator.addObserver(
|
|
199
|
+
observerCoordinator.addObserver(m_imageResponseObserver);
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
|
|
@@ -237,6 +237,11 @@ void ImageComponentView::onThemeChanged() noexcept {
|
|
|
237
237
|
Super::onThemeChanged();
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual ImageComponentView::VisualToApplyBackgroundClipTo()
|
|
241
|
+
const noexcept {
|
|
242
|
+
return Visual();
|
|
243
|
+
}
|
|
244
|
+
|
|
240
245
|
void ImageComponentView::ensureDrawingSurface() noexcept {
|
|
241
246
|
assert(m_reactContext.UIDispatcher().HasThreadAccess());
|
|
242
247
|
|
|
@@ -52,6 +52,8 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
|
|
|
52
52
|
|
|
53
53
|
virtual std::string DefaultControlType() const noexcept;
|
|
54
54
|
static facebook::react::SharedViewProps defaultProps() noexcept;
|
|
55
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual VisualToApplyBackgroundClipTo()
|
|
56
|
+
const noexcept override;
|
|
55
57
|
|
|
56
58
|
ImageComponentView(
|
|
57
59
|
const winrt::Microsoft::ReactNative::Composition::Experimental::ICompositionContext &compContext,
|
package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "../../../codegen/react/components/rnwcore/ModalHostView.g.h"
|
|
9
9
|
#include <ComponentView.Experimental.interop.h>
|
|
10
|
+
#include <dwmapi.h>
|
|
10
11
|
#include <winrt/Microsoft.UI.Content.h>
|
|
11
12
|
#include <winrt/Microsoft.UI.Input.h>
|
|
12
13
|
#include <winrt/Microsoft.UI.Windowing.h>
|
|
@@ -112,6 +113,12 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
|
|
|
112
113
|
m_rnWindow.AppWindow().Title(titleValue);
|
|
113
114
|
}
|
|
114
115
|
|
|
116
|
+
if (m_rnWindow &&
|
|
117
|
+
(newViewProps.hideTitleBar != oldViewProps.hideTitleBar ||
|
|
118
|
+
newViewProps.hideBorder != oldViewProps.hideBorder)) {
|
|
119
|
+
UpdateTitleBarAndBorder();
|
|
120
|
+
}
|
|
121
|
+
|
|
115
122
|
::Microsoft::ReactNativeSpecs::BaseModalHostView<ModalHostView>::UpdateProps(view, newProps, oldProps);
|
|
116
123
|
}
|
|
117
124
|
|
|
@@ -258,6 +265,61 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
|
|
|
258
265
|
}
|
|
259
266
|
}
|
|
260
267
|
|
|
268
|
+
void UpdateTitleBarAndBorder() noexcept {
|
|
269
|
+
if (!m_rnWindow) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
auto overlappedPresenter = winrt::Microsoft::UI::Windowing::OverlappedPresenter::Create();
|
|
274
|
+
|
|
275
|
+
// Configure presenter for modal behavior
|
|
276
|
+
overlappedPresenter.IsModal(true);
|
|
277
|
+
|
|
278
|
+
// modal should only have close button
|
|
279
|
+
overlappedPresenter.IsMinimizable(false);
|
|
280
|
+
overlappedPresenter.IsMaximizable(false);
|
|
281
|
+
|
|
282
|
+
// Apply the presenter to the window
|
|
283
|
+
m_rnWindow.AppWindow().SetPresenter(overlappedPresenter);
|
|
284
|
+
|
|
285
|
+
// We only hide the borders if the titlebar is also hidden.
|
|
286
|
+
const bool hideBorders = m_localProps->hideTitleBar.value_or(false) && m_localProps->hideBorder.value_or(false);
|
|
287
|
+
|
|
288
|
+
auto titleBar = m_rnWindow.AppWindow().TitleBar();
|
|
289
|
+
titleBar.ResetToDefault();
|
|
290
|
+
overlappedPresenter.IsResizable(false);
|
|
291
|
+
|
|
292
|
+
overlappedPresenter.SetBorderAndTitleBar(!hideBorders, !m_localProps->hideTitleBar.value_or(false));
|
|
293
|
+
|
|
294
|
+
auto hwnd = GetWindowFromWindowId(m_rnWindow.AppWindow().Id());
|
|
295
|
+
|
|
296
|
+
if (hideBorders) {
|
|
297
|
+
const DWMNCRENDERINGPOLICY ncPolicy = DWMNCRP_DISABLED;
|
|
298
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_NCRENDERING_POLICY, &ncPolicy, sizeof(ncPolicy));
|
|
299
|
+
|
|
300
|
+
const DWM_WINDOW_CORNER_PREFERENCE cornerPref = DWMWCP_DEFAULT;
|
|
301
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_WINDOW_CORNER_PREFERENCE, &cornerPref, sizeof(cornerPref));
|
|
302
|
+
|
|
303
|
+
const COLORREF zeroColor = 0;
|
|
304
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_BORDER_COLOR, &zeroColor, sizeof(zeroColor));
|
|
305
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_CAPTION_COLOR, &zeroColor, sizeof(zeroColor));
|
|
306
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_TEXT_COLOR, &zeroColor, sizeof(zeroColor));
|
|
307
|
+
} else {
|
|
308
|
+
const DWMNCRENDERINGPOLICY ncPolicy = DWMNCRP_USEWINDOWSTYLE;
|
|
309
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_NCRENDERING_POLICY, &ncPolicy, sizeof(ncPolicy));
|
|
310
|
+
|
|
311
|
+
const DWM_WINDOW_CORNER_PREFERENCE cornerPref = DWMWCP_DEFAULT;
|
|
312
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_WINDOW_CORNER_PREFERENCE, &cornerPref, sizeof(cornerPref));
|
|
313
|
+
|
|
314
|
+
const COLORREF zeroColor = DWMWA_COLOR_DEFAULT;
|
|
315
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_BORDER_COLOR, &zeroColor, sizeof(zeroColor));
|
|
316
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_CAPTION_COLOR, &zeroColor, sizeof(zeroColor));
|
|
317
|
+
::DwmSetWindowAttribute(hwnd, DWMWA_TEXT_COLOR, &zeroColor, sizeof(zeroColor));
|
|
318
|
+
|
|
319
|
+
titleBar.IconShowOptions(winrt::Microsoft::UI::Windowing::IconShowOptions::HideIconAndSystemMenu);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
261
323
|
// creates a new modal window
|
|
262
324
|
void EnsureModalCreated(const winrt::Microsoft::ReactNative::ComponentView &view) {
|
|
263
325
|
if (m_popUp) {
|
|
@@ -282,22 +344,8 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
|
|
|
282
344
|
m_rnWindow = winrt::Microsoft::ReactNative::ReactNativeWindow::CreateFromContentSiteBridgeAndIsland(
|
|
283
345
|
m_popUp, winrt::Microsoft::ReactNative::ReactNativeIsland::CreatePortal(portal));
|
|
284
346
|
m_rnWindow.ResizePolicy(winrt::Microsoft::ReactNative::ContentSizePolicy::None);
|
|
285
|
-
auto overlappedPresenter = winrt::Microsoft::UI::Windowing::OverlappedPresenter::Create();
|
|
286
|
-
|
|
287
|
-
// Configure presenter for modal behavior
|
|
288
|
-
overlappedPresenter.IsModal(true);
|
|
289
|
-
overlappedPresenter.SetBorderAndTitleBar(true, true);
|
|
290
|
-
|
|
291
|
-
// modal should only have close button
|
|
292
|
-
overlappedPresenter.IsMinimizable(false);
|
|
293
|
-
overlappedPresenter.IsMaximizable(false);
|
|
294
|
-
|
|
295
|
-
// Apply the presenter to the window
|
|
296
|
-
m_rnWindow.AppWindow().SetPresenter(overlappedPresenter);
|
|
297
347
|
|
|
298
|
-
|
|
299
|
-
m_rnWindow.AppWindow().TitleBar().IconShowOptions(
|
|
300
|
-
winrt::Microsoft::UI::Windowing::IconShowOptions::HideIconAndSystemMenu);
|
|
348
|
+
UpdateTitleBarAndBorder();
|
|
301
349
|
|
|
302
350
|
// Set initial title using the stored local props
|
|
303
351
|
if (m_localProps && m_localProps->title.has_value()) {
|
|
@@ -340,7 +340,9 @@ void ParagraphComponentView::updateVisualBrush() noexcept {
|
|
|
340
340
|
break;
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
|
-
|
|
343
|
+
|
|
344
|
+
if (alignment != m_textLayout->GetTextAlignment())
|
|
345
|
+
winrt::check_hresult(m_textLayout->SetTextAlignment(alignment));
|
|
344
346
|
}
|
|
345
347
|
|
|
346
348
|
requireNewBrush = true;
|
package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp
CHANGED
|
@@ -1329,7 +1329,7 @@ void WindowsTextInputComponentView::updateLayoutMetrics(
|
|
|
1329
1329
|
facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
|
|
1330
1330
|
// Set Position & Size Properties
|
|
1331
1331
|
|
|
1332
|
-
if (
|
|
1332
|
+
if (m_textServices && layoutMetrics.pointScaleFactor > 0) {
|
|
1333
1333
|
LRESULT res;
|
|
1334
1334
|
winrt::check_hresult(m_textServices->TxSendMessage(
|
|
1335
1335
|
(WM_USER + 328), // EM_SETDPI
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "WindowsTextInputState.h"
|
|
9
9
|
|
|
10
|
-
#include <react/renderer/components/text/platform/
|
|
10
|
+
#include <react/renderer/components/text/platform/cxx/react/renderer/components/text/ParagraphState.h> // [windows]
|
|
11
11
|
|
|
12
12
|
namespace facebook::react {
|
|
13
13
|
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
#include <react/renderer/components/text/ParagraphComponentDescriptor.h>
|
|
25
25
|
#include <react/renderer/core/DynamicPropsUtilities.h>
|
|
26
26
|
#include <react/renderer/core/EventBeat.h>
|
|
27
|
+
#include <react/renderer/mounting/ShadowTree.h>
|
|
27
28
|
#include <react/renderer/runtimescheduler/RuntimeScheduler.h>
|
|
28
29
|
#include <react/renderer/scheduler/Scheduler.h>
|
|
29
30
|
#include <react/renderer/scheduler/SchedulerToolbox.h>
|
|
@@ -404,6 +405,16 @@ void FabricUIManager::schedulerShouldRenderTransactions(
|
|
|
404
405
|
}
|
|
405
406
|
}
|
|
406
407
|
|
|
408
|
+
void FabricUIManager::schedulerShouldMergeReactRevision(facebook::react::SurfaceId surfaceId) {
|
|
409
|
+
m_context.UIDispatcher().Post([surfaceId, self = shared_from_this()]() {
|
|
410
|
+
std::lock_guard lock(self->m_schedulerMutex);
|
|
411
|
+
if (self->m_scheduler) {
|
|
412
|
+
self->m_scheduler->getUIManager()->getShadowTreeRegistry().visit(
|
|
413
|
+
surfaceId, [](const facebook::react::ShadowTree &shadowTree) { shadowTree.mergeReactRevision(); });
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
|
|
407
418
|
void FabricUIManager::schedulerDidRequestPreliminaryViewAllocation(const facebook::react::ShadowNode &shadowView) {
|
|
408
419
|
// iOS does not do this optimization, but Android does. It maybe that android's allocations are more expensive due to
|
|
409
420
|
// the Java boundary.
|
|
@@ -90,6 +90,7 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
90
90
|
const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) override;
|
|
91
91
|
virtual void schedulerShouldRenderTransactions(
|
|
92
92
|
const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) override;
|
|
93
|
+
virtual void schedulerShouldMergeReactRevision(facebook::react::SurfaceId surfaceId) override;
|
|
93
94
|
virtual void schedulerDidRequestPreliminaryViewAllocation(const facebook::react::ShadowNode &shadowView) override;
|
|
94
95
|
virtual void schedulerDidDispatchCommand(
|
|
95
96
|
facebook::react::ShadowView const &shadowView,
|
|
@@ -99,6 +99,9 @@ inline ColorComponents colorComponentsFromHostPlatformColor(Color color) {
|
|
|
99
99
|
|
|
100
100
|
// windows
|
|
101
101
|
inline bool hostPlatformColorIsColorMeaningful(Color color) noexcept {
|
|
102
|
+
if (color.m_platformColor.size())
|
|
103
|
+
return true;
|
|
104
|
+
|
|
102
105
|
auto windowsColor = color.AsWindowsColor();
|
|
103
106
|
return windowsColor.A > 0;
|
|
104
107
|
}
|
package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp
CHANGED
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
#include "PlatformColorUtils.h"
|
|
5
5
|
#include <Utils/ThemeUtils.h>
|
|
6
6
|
#include <Utils/ValueUtils.h>
|
|
7
|
-
#ifndef CORE_ABI
|
|
8
|
-
#include <XamlUtils.h>
|
|
9
|
-
#endif // CORE_ABI
|
|
10
7
|
#include <react/renderer/graphics/Color.h>
|
|
11
8
|
#include <winrt/Windows.UI.ViewManagement.h>
|
|
12
9
|
#include "HostPlatformColor.h"
|
|
@@ -196,12 +196,7 @@ void WindowsTextLayoutManager::GetTextLayout(
|
|
|
196
196
|
));
|
|
197
197
|
|
|
198
198
|
// Apply max width constraint and ellipsis trimming to ensure consistency with rendering
|
|
199
|
-
|
|
200
|
-
winrt::check_hresult(spTextLayout->GetMetrics(&metrics));
|
|
201
|
-
|
|
202
|
-
if (metrics.width > size.width) {
|
|
203
|
-
spTextLayout->SetMaxWidth(size.width);
|
|
204
|
-
}
|
|
199
|
+
spTextLayout->SetMaxWidth(size.width);
|
|
205
200
|
|
|
206
201
|
// Apply DWRITE_TRIMMING for ellipsizeMode
|
|
207
202
|
DWRITE_TRIMMING trimming = {};
|
|
@@ -396,7 +391,7 @@ void WindowsTextLayoutManager::GetTextLayoutByAdjustingFontSizeToFit(
|
|
|
396
391
|
}
|
|
397
392
|
}
|
|
398
393
|
|
|
399
|
-
// measure entire text (
|
|
394
|
+
// measure entire text (including attachments)
|
|
400
395
|
TextMeasurement TextLayoutManager::measure(
|
|
401
396
|
const AttributedStringBox &attributedStringBox,
|
|
402
397
|
const ParagraphAttributes ¶graphAttributes,
|
|
@@ -21,5 +21,11 @@ namespace Microsoft.ReactNative
|
|
|
21
21
|
DOC_STRING("Adds a custom native module. See @ReactModuleProvider. This will register the"
|
|
22
22
|
"module as a TurboModule.")
|
|
23
23
|
void AddTurboModule(String moduleName, ReactModuleProvider moduleProvider);
|
|
24
|
+
|
|
25
|
+
DOC_STRING("Adds a custom native module. See @ReactModuleProvider. This will register the"
|
|
26
|
+
"module as a TurboModule. This module will be created and have init called as soon as the"
|
|
27
|
+
"instance is created, event before the module is accessed from JavaScript.")
|
|
28
|
+
void AddEagerInitTurboModule(String moduleName, ReactModuleProvider moduleProvider);
|
|
29
|
+
|
|
24
30
|
}
|
|
25
31
|
} // namespace Microsoft.ReactNative
|