react-native-windows 0.76.2 → 0.77.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 +5 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
- package/Libraries/Animated/AnimatedEvent.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
- package/Libraries/Animated/NativeAnimatedAllowlist.windows.js +122 -0
- package/Libraries/Animated/animations/Animation.js +60 -25
- package/Libraries/Animated/animations/DecayAnimation.js +26 -38
- package/Libraries/Animated/animations/SpringAnimation.js +33 -39
- package/Libraries/Animated/animations/TimingAnimation.js +34 -42
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
- package/Libraries/Animated/createAnimatedComponent.js +60 -33
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
- package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
- package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +96 -46
- package/Libraries/Animated/nodes/AnimatedProps.windows.js +281 -0
- package/Libraries/Animated/nodes/AnimatedStyle.js +108 -39
- package/Libraries/Animated/nodes/AnimatedStyle.windows.js +251 -0
- package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
- package/Libraries/Animated/useAnimatedProps.js +41 -35
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
- package/Libraries/Components/Button.js +9 -4
- package/Libraries/Components/Button.windows.js +19 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
- package/Libraries/Components/Glyph/Glyph.js +2 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
- package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
- package/Libraries/Components/Pressable/Pressable.js +4 -4
- package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
- package/Libraries/Components/ScrollView/ScrollView.js +49 -88
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
- package/Libraries/Components/Switch/Switch.js +8 -6
- package/Libraries/Components/Switch/Switch.windows.js +8 -6
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
- package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
- package/Libraries/Components/TextInput/TextInput.js +37 -13
- package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
- package/Libraries/Components/TextInput/TextInputState.js +11 -13
- package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
- package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
- package/Libraries/Components/Touchable/Position.js +7 -2
- package/Libraries/Components/Touchable/Touchable.js +4 -0
- package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
- package/Libraries/Components/View/View.js +4 -4
- package/Libraries/Components/View/View.windows.js +88 -57
- package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
- package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
- package/Libraries/Components/View/ViewNativeComponent.js +6 -98
- package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
- package/Libraries/Components/View/ViewPropTypes.js +0 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
- package/Libraries/Core/ExceptionsManager.js +50 -29
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -10
- package/Libraries/Core/setUpDeveloperTools.js +1 -5
- package/Libraries/Core/setUpErrorHandling.js +20 -18
- package/Libraries/Core/setUpReactDevTools.js +107 -8
- package/Libraries/Core/setUpSegmentFetcher.js +1 -0
- package/Libraries/Core/setUpTimers.js +21 -18
- package/Libraries/Debugging/DebuggingOverlay.js +4 -5
- package/Libraries/Image/AssetSourceResolver.js +12 -1
- package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
- package/Libraries/Image/Image.android.js +1 -5
- package/Libraries/Image/Image.d.ts +20 -29
- package/Libraries/Image/Image.ios.js +0 -2
- package/Libraries/Image/Image.windows.js +5 -1
- package/Libraries/Image/ImageBackground.js +2 -5
- package/Libraries/Image/ImageProps.js +7 -6
- package/Libraries/Image/ImageResizeMode.d.ts +8 -1
- package/Libraries/Image/ImageResizeMode.js +4 -1
- package/Libraries/Image/ImageSource.d.ts +0 -2
- package/Libraries/Image/ImageSource.js +0 -2
- package/Libraries/Image/ImageTypes.flow.js +11 -9
- package/Libraries/Image/ImageUtils.js +6 -3
- package/Libraries/Image/ImageViewNativeComponent.js +5 -3
- package/Libraries/Inspector/Inspector.js +1 -0
- package/Libraries/Inspector/NetworkOverlay.js +4 -0
- package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
- package/Libraries/Interaction/InteractionManager.js +6 -1
- package/Libraries/Interaction/InteractionManagerStub.js +176 -0
- package/Libraries/Interaction/TouchHistoryMath.js +22 -19
- package/Libraries/JSInspector/NetworkAgent.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +1 -2
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/Lists/SectionListModern.js +7 -7
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +3 -3
- package/Libraries/LogBox/LogBox.js +18 -5
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
- package/Libraries/Modal/Modal.d.ts +12 -0
- package/Libraries/Modal/Modal.js +31 -4
- package/Libraries/Modal/Modal.windows.js +370 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
- package/Libraries/Network/XHRInterceptor.js +63 -14
- package/Libraries/Network/XMLHttpRequest.js +26 -1
- package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
- package/Libraries/Pressability/HoverState.js +2 -0
- package/Libraries/Pressability/Pressability.js +2 -3
- package/Libraries/Pressability/Pressability.windows.js +2 -3
- package/Libraries/Pressability/usePressability.js +4 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.js +1 -11
- package/Libraries/ReactNative/DisplayMode.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
- package/Libraries/ReactNative/RendererImplementation.js +18 -17
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
- package/Libraries/ReactNative/renderApplication.js +9 -8
- package/Libraries/ReactNative/requireNativeComponent.js +5 -2
- package/Libraries/Renderer/shims/ReactFabric.js +3 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +3 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/StyleSheet/StyleSheet.js +7 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
- package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
- package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
- package/Libraries/StyleSheet/processTransform.js +3 -34
- package/Libraries/Text/Text.js +248 -249
- package/Libraries/Text/Text.windows.js +298 -292
- package/Libraries/Text/TextNativeComponent.js +0 -1
- package/Libraries/Text/TextProps.windows.js +2 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
- package/Libraries/Types/CoreEventTypes.d.ts +3 -10
- package/Libraries/Types/CoreEventTypes.js +4 -6
- package/Libraries/Types/CoreEventTypes.windows.js +4 -6
- package/Libraries/Utilities/Appearance.js +3 -1
- package/Libraries/Utilities/BackHandler.android.js +6 -18
- package/Libraries/Utilities/BackHandler.d.ts +0 -4
- package/Libraries/Utilities/BackHandler.ios.js +0 -7
- package/Libraries/Utilities/BackHandler.windows.js +6 -18
- package/Libraries/Utilities/HMRClient.js +3 -4
- package/Libraries/Utilities/Platform.flow.js +2 -2
- package/Libraries/Utilities/Platform.flow.windows.js +3 -2
- package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
- package/Libraries/Utilities/codegenNativeComponent.js +1 -1
- package/Libraries/Utilities/useMergeRefs.js +26 -7
- package/Libraries/WebSocket/WebSocketEvent.js +4 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
- package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
- package/Microsoft.ReactNative/CompositionComponentView.idl +2 -1
- package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +6 -3
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +7 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +2 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.cpp +45 -50
- package/Microsoft.ReactNative/Fabric/ComponentView.h +14 -22
- package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +943 -0
- package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +80 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +223 -21
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +187 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +10 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +8 -32
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +349 -929
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +32 -29
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +9 -2
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +181 -123
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.h +16 -8
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +99 -37
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +25 -3
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +64 -3
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +12 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +51 -3
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +18 -8
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +56 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +8 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +9 -3
- package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +35 -0
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +7 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +1 -5
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +26 -0
- package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +1 -1
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactNativeIsland.idl +3 -2
- package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
- package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
- package/Microsoft.ReactNative/ViewProps.idl +2 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
- package/Microsoft.ReactNative.Cxx/ComponentView.Experimental.interop.h +14 -0
- package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
- package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
- package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
- package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
- package/PropertySheets/Bundle.Common.targets +1 -1
- package/PropertySheets/Bundle.props +3 -0
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
- package/PropertySheets/OutputMSBuildProperties.targets +3 -1
- package/ReactCommon/ReactCommon.vcxproj +5 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +188 -39
- package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
- package/Shared/InspectorPackagerConnection.cpp +3 -6
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/InstanceManager.h +1 -1
- package/Shared/OInstance.h +1 -1
- package/Shared/Shared.vcxitems +20 -2
- package/Shared/Shared.vcxitems.filters +4 -1
- package/Shared/TurboModuleManager.cpp +29 -4
- package/codegen/NativeAccessibilityInfoSpec.g.h +28 -9
- package/codegen/NativeAccessibilityManagerSpec.g.h +20 -13
- package/codegen/NativeActionSheetManagerSpec.g.h +5 -0
- package/codegen/NativeAlertManagerSpec.g.h +1 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +1 -0
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +1 -0
- package/codegen/NativeAppStateSpec.g.h +1 -0
- package/codegen/NativeAppThemeSpec.g.h +1 -0
- package/codegen/NativeAppearanceSpec.g.h +1 -0
- package/codegen/NativeBlobModuleSpec.g.h +1 -0
- package/codegen/NativeBugReportingSpec.g.h +1 -0
- package/codegen/NativeClipboardSpec.g.h +1 -0
- package/codegen/NativeDOMSpec.g.h +1 -0
- package/codegen/NativeDevLoadingViewSpec.g.h +1 -0
- package/codegen/NativeDevMenuSpec.g.h +1 -0
- package/codegen/NativeDevSettingsSpec.g.h +1 -0
- package/codegen/NativeDeviceEventManagerSpec.g.h +1 -0
- package/codegen/NativeDeviceInfoSpec.g.h +1 -0
- package/codegen/NativeDialogManagerAndroidSpec.g.h +1 -0
- package/codegen/NativeDialogManagerWindowsSpec.g.h +1 -0
- package/codegen/NativeExceptionsManagerSpec.g.h +2 -7
- package/codegen/NativeFileReaderModuleSpec.g.h +1 -0
- package/codegen/NativeFrameRateLoggerSpec.g.h +1 -0
- package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +1 -0
- package/codegen/NativeI18nManagerSpec.g.h +1 -0
- package/codegen/NativeIdleCallbacksSpec.g.h +1 -0
- package/codegen/NativeImageEditorSpec.g.h +1 -0
- package/codegen/NativeImageLoaderAndroidSpec.g.h +1 -0
- package/codegen/NativeImageLoaderIOSSpec.g.h +1 -0
- package/codegen/NativeImageStoreAndroidSpec.g.h +1 -0
- package/codegen/NativeImageStoreIOSSpec.g.h +1 -0
- package/codegen/NativeIntentAndroidSpec.g.h +1 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +3 -0
- package/codegen/NativeJSCHeapCaptureSpec.g.h +1 -0
- package/codegen/NativeJSCSamplingProfilerSpec.g.h +1 -0
- package/codegen/NativeKeyboardObserverSpec.g.h +1 -0
- package/codegen/NativeLinkingManagerSpec.g.h +1 -0
- package/codegen/NativeLogBoxSpec.g.h +1 -0
- package/codegen/NativeMicrotasksSpec.g.h +1 -0
- package/codegen/NativeModalManagerSpec.g.h +1 -0
- package/codegen/NativeMutationObserverSpec.g.h +1 -0
- package/codegen/NativeNetworkingAndroidSpec.g.h +1 -0
- package/codegen/NativeNetworkingIOSSpec.g.h +1 -0
- package/codegen/NativePerformanceSpec.g.h +128 -3
- package/codegen/NativePermissionsAndroidSpec.g.h +1 -0
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +1 -0
- package/codegen/NativePlatformConstantsIOSSpec.g.h +1 -0
- package/codegen/NativePlatformConstantsWindowsSpec.g.h +1 -0
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +1 -0
- package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
- package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +126 -137
- package/codegen/NativeRedBoxSpec.g.h +1 -0
- package/codegen/NativeSampleTurboModuleSpec.g.h +1 -0
- package/codegen/NativeSegmentFetcherSpec.g.h +1 -0
- package/codegen/NativeSettingsManagerSpec.g.h +1 -0
- package/codegen/NativeShareModuleSpec.g.h +1 -0
- package/codegen/NativeSoundManagerSpec.g.h +1 -0
- package/codegen/NativeSourceCodeSpec.g.h +1 -0
- package/codegen/NativeStatusBarManagerAndroidSpec.g.h +1 -0
- package/codegen/NativeStatusBarManagerIOSSpec.g.h +1 -0
- package/codegen/NativeTimingSpec.g.h +1 -0
- package/codegen/NativeToastAndroidSpec.g.h +1 -0
- package/codegen/NativeUIManagerSpec.g.h +1 -0
- package/codegen/NativeVibrationSpec.g.h +1 -0
- package/codegen/NativeWebSocketModuleSpec.g.h +1 -0
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/Props.cpp +1 -0
- package/codegen/react/components/rnwcore/Props.h +1 -0
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
- package/codegen/react/components/rnwcore/States.h +0 -12
- package/codegen/rnwcoreJSI-generated.cpp +219 -186
- package/codegen/rnwcoreJSI.h +942 -511
- package/index.js +10 -3
- package/index.windows.js +10 -3
- package/jest/setup.js +36 -1
- package/just-task.js +15 -0
- package/package.json +22 -22
- package/src/private/animated/NativeAnimatedHelper.js +18 -16
- package/src/private/animated/useAnimatedPropsMemo.js +348 -0
- package/src/private/animated/useAnimatedPropsMemo.windows.js +356 -0
- package/src/private/components/HScrollViewNativeComponents.js +1 -27
- package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
- package/src/private/components/VScrollViewNativeComponents.js +2 -25
- package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
- package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
- package/src/private/devmenu/DevMenu.d.ts +20 -0
- package/src/private/devmenu/DevMenu.js +31 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
- package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
- package/src/private/setup/setUpDOM.js +14 -6
- package/src/private/setup/setUpMutationObserver.js +5 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
- package/src/private/specs/modules/NativeAppearance.js +4 -10
- package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
- package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
- package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
- package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
- package/src/private/webapis/performance/EventTiming.js +13 -8
- package/src/private/webapis/performance/Performance.js +66 -73
- package/src/private/webapis/performance/PerformanceEntry.js +2 -5
- package/src/private/webapis/performance/PerformanceObserver.js +65 -164
- package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +11 -7
- package/src/private/webapis/performance/Utilities.js +18 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
- package/templates/cpp-lib/template.config.js +13 -7
- package/templates/templateUtils.js +10 -0
- package/types/index.d.ts +1 -1
- package/types/public/ReactNativeTypes.d.ts +4 -8
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
- package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
- package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -52
- package/codegen/NativePerformanceObserverSpec.g.h +0 -130
- package/src/private/components/useSyncOnScroll.js +0 -48
- package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
- package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
- package/types/experimental.d.ts +0 -59
- /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
|
@@ -3,20 +3,21 @@
|
|
|
3
3
|
namespace Microsoft::ReactNative {
|
|
4
4
|
|
|
5
5
|
AsynchronousEventBeat::AsynchronousEventBeat(
|
|
6
|
-
facebook::react::EventBeat::
|
|
6
|
+
std::shared_ptr<facebook::react::EventBeat::OwnerBox> const ownerBox,
|
|
7
7
|
const winrt::Microsoft::ReactNative::ReactContext &context,
|
|
8
|
-
facebook::react::
|
|
9
|
-
: EventBeat(ownerBox), m_context(context),
|
|
8
|
+
std::shared_ptr<facebook::react::RuntimeScheduler> runtimeScheduler)
|
|
9
|
+
: EventBeat(ownerBox, *runtimeScheduler), m_context(context), m_runtimeScheduler(std::move(runtimeScheduler)) {}
|
|
10
10
|
|
|
11
11
|
void AsynchronousEventBeat::induce() const {
|
|
12
|
-
if (!
|
|
13
|
-
|
|
12
|
+
if (!isEventBeatRequested_ || m_isBeatCallbackScheduled) {
|
|
13
|
+
isEventBeatRequested_ = false;
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
isEventBeatRequested_ = false;
|
|
17
17
|
m_isBeatCallbackScheduled = true;
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
facebook::react::RuntimeScheduler &schedulerRef = *m_runtimeScheduler.get();
|
|
20
|
+
schedulerRef.scheduleWork([this, ownerBox = ownerBox_](facebook::jsi::Runtime &runtime) {
|
|
20
21
|
auto owner = ownerBox->owner.lock();
|
|
21
22
|
if (!owner) {
|
|
22
23
|
return;
|
|
@@ -30,7 +31,7 @@ void AsynchronousEventBeat::induce() const {
|
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
void AsynchronousEventBeat::request() const {
|
|
33
|
-
bool alreadyRequested =
|
|
34
|
+
bool alreadyRequested = isEventBeatRequested_.exchange(true);
|
|
34
35
|
if (!alreadyRequested) {
|
|
35
36
|
if (m_context.UIDispatcher().HasThreadAccess()) {
|
|
36
37
|
induce();
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
#include <NativeModules.h>
|
|
2
|
-
#include <ReactCommon/RuntimeExecutor.h>
|
|
3
2
|
#include <react/renderer/core/EventBeat.h>
|
|
3
|
+
#include <react/renderer/runtimescheduler/RuntimeScheduler.h>
|
|
4
4
|
|
|
5
5
|
namespace Microsoft::ReactNative {
|
|
6
6
|
|
|
7
7
|
class AsynchronousEventBeat final : public facebook::react::EventBeat {
|
|
8
8
|
public:
|
|
9
9
|
AsynchronousEventBeat(
|
|
10
|
-
facebook::react::EventBeat::
|
|
10
|
+
std::shared_ptr<facebook::react::EventBeat::OwnerBox> const ownerBox,
|
|
11
11
|
const winrt::Microsoft::ReactNative::ReactContext &context,
|
|
12
|
-
facebook::react::
|
|
12
|
+
std::shared_ptr<facebook::react::RuntimeScheduler> runtimeScheduler);
|
|
13
13
|
|
|
14
|
-
void induce() const
|
|
14
|
+
void induce() const;
|
|
15
15
|
void request() const override;
|
|
16
16
|
|
|
17
17
|
private:
|
|
18
18
|
mutable std::atomic<bool> m_isBeatCallbackScheduled{false};
|
|
19
19
|
winrt::Microsoft::ReactNative::ReactContext m_context;
|
|
20
|
-
facebook::react::
|
|
20
|
+
std::shared_ptr<facebook::react::RuntimeScheduler> m_runtimeScheduler;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
} // namespace Microsoft::ReactNative
|
|
@@ -22,8 +22,9 @@ namespace Microsoft.ReactNative.Composition
|
|
|
22
22
|
NativeBorder = 0x00000001,
|
|
23
23
|
ShadowProps = 0x00000002,
|
|
24
24
|
Background = 0x00000004,
|
|
25
|
+
FocusVisual = 0x00000008,
|
|
25
26
|
|
|
26
|
-
Default =
|
|
27
|
+
Default = 0x0000000F, // ShadowProps | NativeBorder | Background | FocusVisual
|
|
27
28
|
};
|
|
28
29
|
|
|
29
30
|
namespace Experimental {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Core RN code expects to be able to use #include <FBReactNativeSpec/FBReactNativeSpecJSI.h> to import the generated
|
|
2
|
+
// headers. We should look into moving the codegen output into a FBReactNativeSpec folder, and running codegen using
|
|
3
|
+
// FBReactNative as the library name But for now this redirection header will suffice
|
|
4
|
+
// https://github.com/microsoft/react-native-windows/issues/14129 tracks removing this file
|
|
5
|
+
#include <codegen/rnwcoreJSI.h>
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
#include <Fabric/WindowsComponentDescriptorRegistry.h>
|
|
9
9
|
#include <ReactContext.h>
|
|
10
|
-
#include <react/utils/CoreFeatures.h>
|
|
11
10
|
#include <type_traits>
|
|
12
11
|
#include "DynamicReader.h"
|
|
13
12
|
|
|
13
|
+
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
14
14
|
namespace Microsoft::ReactNative {
|
|
15
15
|
|
|
16
16
|
AbiComponentDescriptor::AbiComponentDescriptor(facebook::react::ComponentDescriptorParameters const ¶meters)
|
|
@@ -90,7 +90,7 @@ facebook::react::Props::Shared AbiComponentDescriptor::cloneProps(
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
if constexpr (std::is_base_of_v<facebook::react::YogaLayoutableShadowNode, ShadowNodeT>) {
|
|
93
|
-
if (facebook::react::
|
|
93
|
+
if (facebook::react::ReactNativeFeatureFlags::excludeYogaFromRawProps()) {
|
|
94
94
|
rawProps.filterYogaStylePropsInDynamicConversion();
|
|
95
95
|
}
|
|
96
96
|
}
|
|
@@ -106,7 +106,10 @@ facebook::react::Props::Shared AbiComponentDescriptor::cloneProps(
|
|
|
106
106
|
rawProps);
|
|
107
107
|
auto userProps =
|
|
108
108
|
winrt::get_self<winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder>(m_builder)
|
|
109
|
-
->CreateProps(
|
|
109
|
+
->CreateProps(
|
|
110
|
+
nullptr,
|
|
111
|
+
props ? static_cast<winrt::Microsoft::ReactNative::implementation::AbiProps const &>(*props).UserProps()
|
|
112
|
+
: nullptr);
|
|
110
113
|
shadowNodeProps->SetUserProps(userProps);
|
|
111
114
|
|
|
112
115
|
const auto &dynamic = static_cast<folly::dynamic>(rawProps);
|
|
@@ -103,7 +103,7 @@ facebook::react::Props::Shared AbiViewComponentDescriptor::cloneProps(
|
|
|
103
103
|
winrt::make<winrt::Microsoft::ReactNative::implementation::ViewProps>(shadowNodeProps, false /*holdRef*/);
|
|
104
104
|
auto userProps =
|
|
105
105
|
winrt::get_self<winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder>(m_builder)
|
|
106
|
-
->CreateProps(viewProps);
|
|
106
|
+
->CreateProps(viewProps, props ? static_cast<AbiViewProps const &>(*props).UserProps() : nullptr);
|
|
107
107
|
shadowNodeProps->SetUserProps(userProps, viewProps);
|
|
108
108
|
|
|
109
109
|
const auto &dynamic = static_cast<folly::dynamic>(rawProps);
|
|
@@ -65,6 +65,13 @@ winrt::Microsoft::ReactNative::Composition::Experimental::IBrush Color::AsIntern
|
|
|
65
65
|
return winrt::get_self<winrt::Microsoft::ReactNative::Composition::implementation::Theme>(theme)->Brush(*m_color);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
bool Color::Equals(const winrt::Microsoft::ReactNative::Color &color) const noexcept {
|
|
69
|
+
if (!color) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return m_color == winrt::get_self<Color>(color)->m_color;
|
|
73
|
+
}
|
|
74
|
+
|
|
68
75
|
winrt::Microsoft::ReactNative::Color Color::ReadValue(
|
|
69
76
|
const winrt::Microsoft::ReactNative::IJSValueReader &reader) noexcept {
|
|
70
77
|
switch (reader.ValueType()) {
|
|
@@ -50,6 +50,8 @@ struct Color : ColorT<Color, Composition::Experimental::IInternalColor> {
|
|
|
50
50
|
winrt::Microsoft::ReactNative::Composition::Experimental::IBrush AsInternalBrush(
|
|
51
51
|
const winrt::Microsoft::ReactNative::Composition::Theme theme) noexcept;
|
|
52
52
|
|
|
53
|
+
bool Equals(const winrt::Microsoft::ReactNative::Color &color) const noexcept;
|
|
54
|
+
|
|
53
55
|
static winrt::Microsoft::ReactNative::Color ReadValue(
|
|
54
56
|
const winrt::Microsoft::ReactNative::IJSValueReader &reader) noexcept;
|
|
55
57
|
static void WriteValue(
|
|
@@ -22,11 +22,12 @@ struct RootComponentView;
|
|
|
22
22
|
|
|
23
23
|
namespace winrt::Microsoft::ReactNative::implementation {
|
|
24
24
|
|
|
25
|
-
ComponentView::ComponentView(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
ComponentView::ComponentView(
|
|
26
|
+
facebook::react::Tag tag,
|
|
27
|
+
winrt::Microsoft::ReactNative::ReactContext const &reactContext,
|
|
28
|
+
winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder *builder)
|
|
29
|
+
: m_tag(tag), m_reactContext(reactContext) {
|
|
30
|
+
m_builder.copy_from(builder);
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
std::vector<facebook::react::ComponentDescriptorProvider>
|
|
@@ -52,18 +53,15 @@ void ComponentView::MountChildComponentView(
|
|
|
52
53
|
uint32_t index) noexcept {
|
|
53
54
|
m_children.InsertAt(index, childComponentView);
|
|
54
55
|
winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(childComponentView)->parent(*this);
|
|
55
|
-
if (
|
|
56
|
-
|
|
56
|
+
if (m_builder && m_builder->MountChildComponentViewHandler()) {
|
|
57
|
+
m_builder->MountChildComponentViewHandler()(
|
|
58
|
+
*this, winrt::make<MountChildComponentViewArgs>(childComponentView, index));
|
|
57
59
|
}
|
|
58
60
|
if (m_mounted) {
|
|
59
61
|
winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(childComponentView)->onMounted();
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
|
|
63
|
-
void ComponentView::MountChildComponentViewHandler(const MountChildComponentViewDelegate &handler) noexcept {
|
|
64
|
-
m_mountChildComponentViewHandler = handler;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
65
|
void ComponentView::onMounted() noexcept {
|
|
68
66
|
assert(!m_mounted);
|
|
69
67
|
m_mounted = true;
|
|
@@ -73,6 +71,10 @@ void ComponentView::onMounted() noexcept {
|
|
|
73
71
|
m_mountedEvent(*this, *this);
|
|
74
72
|
}
|
|
75
73
|
|
|
74
|
+
bool ComponentView::isMounted() noexcept {
|
|
75
|
+
return m_mounted;
|
|
76
|
+
}
|
|
77
|
+
|
|
76
78
|
winrt::event_token ComponentView::Mounted(
|
|
77
79
|
winrt::Windows::Foundation::EventHandler<winrt::Microsoft::ReactNative::ComponentView> const &handler) noexcept {
|
|
78
80
|
return m_mountedEvent.add(handler);
|
|
@@ -85,16 +87,14 @@ void ComponentView::Mounted(winrt::event_token const &token) noexcept {
|
|
|
85
87
|
void ComponentView::UnmountChildComponentView(
|
|
86
88
|
const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
|
|
87
89
|
uint32_t index) noexcept {
|
|
88
|
-
if (
|
|
89
|
-
|
|
90
|
+
if (m_builder && m_builder->UnmountChildComponentViewHandler()) {
|
|
91
|
+
m_builder->UnmountChildComponentViewHandler()(
|
|
92
|
+
*this, winrt::make<UnmountChildComponentViewArgs>(childComponentView, index));
|
|
90
93
|
}
|
|
91
94
|
m_children.RemoveAt(index);
|
|
92
95
|
winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(childComponentView)->parent(nullptr);
|
|
93
96
|
winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(childComponentView)->onUnmounted();
|
|
94
97
|
}
|
|
95
|
-
void ComponentView::UnmountChildComponentViewHandler(const UnmountChildComponentViewDelegate &handler) noexcept {
|
|
96
|
-
m_unmountChildComponentViewHandler = handler;
|
|
97
|
-
}
|
|
98
98
|
|
|
99
99
|
void ComponentView::onUnmounted() noexcept {
|
|
100
100
|
if (!m_mounted)
|
|
@@ -144,15 +144,11 @@ uint32_t UnmountChildComponentViewArgs::Index() const noexcept {
|
|
|
144
144
|
void ComponentView::updateProps(
|
|
145
145
|
facebook::react::Props::Shared const &props,
|
|
146
146
|
facebook::react::Props::Shared const &oldProps) noexcept {
|
|
147
|
-
if (
|
|
148
|
-
|
|
147
|
+
if (m_builder && m_builder->UpdatePropsHandler()) {
|
|
148
|
+
m_builder->UpdatePropsHandler()(*this, userProps(props), oldProps ? userProps(oldProps) : nullptr);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
void ComponentView::UpdatePropsHandler(const UpdatePropsDelegate &handler) noexcept {
|
|
153
|
-
m_updatePropsDelegate = handler;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
152
|
const winrt::Microsoft::ReactNative::IComponentProps ComponentView::userProps(
|
|
157
153
|
facebook::react::Props::Shared const &props) noexcept {
|
|
158
154
|
const auto &abiProps =
|
|
@@ -161,28 +157,20 @@ const winrt::Microsoft::ReactNative::IComponentProps ComponentView::userProps(
|
|
|
161
157
|
}
|
|
162
158
|
|
|
163
159
|
void ComponentView::updateEventEmitter(facebook::react::EventEmitter::Shared const &eventEmitter) noexcept {
|
|
164
|
-
if (
|
|
165
|
-
|
|
160
|
+
if (m_builder && m_builder->UpdateEventEmitterHandler()) {
|
|
161
|
+
m_builder->UpdateEventEmitterHandler()(*this, winrt::make<EventEmitter>(eventEmitter));
|
|
166
162
|
}
|
|
167
163
|
}
|
|
168
164
|
|
|
169
|
-
void ComponentView::UpdateEventEmitterHandler(const UpdateEventEmitterDelegate &handler) noexcept {
|
|
170
|
-
m_updateEventEmitterHandler = handler;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
165
|
void ComponentView::updateState(
|
|
174
166
|
facebook::react::State::Shared const &state,
|
|
175
167
|
facebook::react::State::Shared const &oldState) noexcept {
|
|
176
168
|
// Avoid new-ing up a new AbiComponentState on every state change if we are not a custom component
|
|
177
|
-
if (
|
|
178
|
-
|
|
169
|
+
if (m_builder && m_builder->UpdateStateHandler()) {
|
|
170
|
+
m_builder->UpdateStateHandler()(*this, winrt::make<::Microsoft::ReactNative::AbiComponentState>(state));
|
|
179
171
|
}
|
|
180
172
|
}
|
|
181
173
|
|
|
182
|
-
void ComponentView::UpdateStateHandler(const UpdateStateDelegate &handler) noexcept {
|
|
183
|
-
m_updateStateDelegate = handler;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
174
|
LayoutMetricsChangedArgs::LayoutMetricsChangedArgs(
|
|
187
175
|
const winrt::Microsoft::ReactNative::LayoutMetrics &newLayoutMetrics,
|
|
188
176
|
const winrt::Microsoft::ReactNative::LayoutMetrics &oldLayoutMetrics)
|
|
@@ -212,6 +200,10 @@ void ComponentView::updateLayoutMetrics(
|
|
|
212
200
|
layoutMetrics.frame.size.height},
|
|
213
201
|
layoutMetrics.pointScaleFactor};
|
|
214
202
|
|
|
203
|
+
if (m_builder && m_builder->UpdateLayoutMetricsHandler()) {
|
|
204
|
+
m_builder->UpdateLayoutMetricsHandler()(*this, newMetrics, oldMetrics);
|
|
205
|
+
}
|
|
206
|
+
|
|
215
207
|
m_layoutMetrics = layoutMetrics;
|
|
216
208
|
|
|
217
209
|
m_layoutMetricsChangedEvent(*this, winrt::make<LayoutMetricsChangedArgs>(newMetrics, oldMetrics));
|
|
@@ -236,13 +228,9 @@ void ComponentView::LayoutMetricsChanged(winrt::event_token const &token) noexce
|
|
|
236
228
|
m_layoutMetricsChangedEvent.remove(token);
|
|
237
229
|
}
|
|
238
230
|
|
|
239
|
-
void ComponentView::FinalizeUpdateHandler(const UpdateFinalizerDelegate &handler) noexcept {
|
|
240
|
-
m_finalizeUpdateHandler = handler;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
231
|
void ComponentView::FinalizeUpdates(winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept {
|
|
244
|
-
if (
|
|
245
|
-
|
|
232
|
+
if (m_builder && m_builder->FinalizeUpdateHandler()) {
|
|
233
|
+
m_builder->FinalizeUpdateHandler()(*this, updateMask);
|
|
246
234
|
}
|
|
247
235
|
}
|
|
248
236
|
|
|
@@ -253,13 +241,9 @@ facebook::react::Props::Shared ComponentView::props() noexcept {
|
|
|
253
241
|
return {};
|
|
254
242
|
}
|
|
255
243
|
|
|
256
|
-
void ComponentView::CustomCommandHandler(const HandleCommandDelegate &handler) noexcept {
|
|
257
|
-
m_customCommandHandler = handler;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
244
|
void ComponentView::HandleCommand(const winrt::Microsoft::ReactNative::HandleCommandArgs &args) noexcept {
|
|
261
|
-
if (
|
|
262
|
-
|
|
245
|
+
if (m_builder && m_builder->CustomCommandHandler()) {
|
|
246
|
+
m_builder->CustomCommandHandler()(*this, args);
|
|
263
247
|
}
|
|
264
248
|
}
|
|
265
249
|
|
|
@@ -342,10 +326,13 @@ bool ComponentView::runOnChildren(
|
|
|
342
326
|
return true;
|
|
343
327
|
}
|
|
344
328
|
} else {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
329
|
+
if (m_children.Size()) {
|
|
330
|
+
auto it = m_children.end();
|
|
331
|
+
do {
|
|
332
|
+
it--;
|
|
333
|
+
if (fn(*winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(*it)))
|
|
334
|
+
return true;
|
|
335
|
+
} while (it != m_children.begin());
|
|
349
336
|
}
|
|
350
337
|
}
|
|
351
338
|
return false;
|
|
@@ -356,6 +343,14 @@ RECT ComponentView::getClientRect() const noexcept {
|
|
|
356
343
|
return {};
|
|
357
344
|
}
|
|
358
345
|
|
|
346
|
+
winrt::Windows::Foundation::Point ComponentView::ScreenToLocal(winrt::Windows::Foundation::Point pt) noexcept {
|
|
347
|
+
return rootComponentView()->ConvertScreenToLocal(pt);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
winrt::Windows::Foundation::Point ComponentView::LocalToScreen(winrt::Windows::Foundation::Point pt) noexcept {
|
|
351
|
+
return rootComponentView()->ConvertLocalToScreen(pt);
|
|
352
|
+
}
|
|
353
|
+
|
|
359
354
|
// The offset from this elements parent to its children (accounts for things like scroll position)
|
|
360
355
|
facebook::react::Point ComponentView::getClientOffset() const noexcept {
|
|
361
356
|
assert(false);
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
#include <react/renderer/components/view/ViewProps.h>
|
|
12
12
|
#include <react/renderer/core/LayoutMetrics.h>
|
|
13
13
|
|
|
14
|
+
#include <ComponentView.Experimental.interop.h>
|
|
15
|
+
#include <Fabric/Composition/ReactCompositionViewComponentBuilder.h>
|
|
14
16
|
#include <Fabric/Composition/Theme.h>
|
|
15
17
|
#include <uiautomationcore.h>
|
|
16
18
|
#include <winrt/Microsoft.ReactNative.Composition.Input.h>
|
|
@@ -37,11 +39,11 @@ struct BringIntoViewOptions {
|
|
|
37
39
|
bool AnimationDesired{false};
|
|
38
40
|
// NaN will bring the element fully into view aligned to the nearest edge of the viewport
|
|
39
41
|
float HorizontalAlignmentRatio{std::numeric_limits<float>::quiet_NaN()};
|
|
40
|
-
float HorizontalOffset{
|
|
42
|
+
float HorizontalOffset{20};
|
|
41
43
|
std::optional<facebook::react::Rect> TargetRect;
|
|
42
44
|
// NaN will bring the element fully into view aligned to the nearest edge of the viewport
|
|
43
45
|
float VerticalAlignmentRatio{std::numeric_limits<float>::quiet_NaN()};
|
|
44
|
-
float VerticalOffset{
|
|
46
|
+
float VerticalOffset{20};
|
|
45
47
|
};
|
|
46
48
|
|
|
47
49
|
struct LayoutMetricsChangedArgs : public LayoutMetricsChangedArgsT<LayoutMetricsChangedArgs> {
|
|
@@ -77,8 +79,12 @@ struct UnmountChildComponentViewArgs : public UnmountChildComponentViewArgsT<Unm
|
|
|
77
79
|
uint32_t m_index;
|
|
78
80
|
};
|
|
79
81
|
|
|
80
|
-
struct ComponentView
|
|
81
|
-
|
|
82
|
+
struct ComponentView
|
|
83
|
+
: public ComponentViewT<ComponentView, ::Microsoft::ReactNative::Composition::Experimental::IComponentViewInterop> {
|
|
84
|
+
ComponentView(
|
|
85
|
+
facebook::react::Tag tag,
|
|
86
|
+
winrt::Microsoft::ReactNative::ReactContext const &reactContext,
|
|
87
|
+
winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder *builder);
|
|
82
88
|
|
|
83
89
|
virtual std::vector<facebook::react::ComponentDescriptorProvider> supplementalComponentDescriptorProviders() noexcept;
|
|
84
90
|
virtual void updateProps(
|
|
@@ -105,14 +111,16 @@ struct ComponentView : public ComponentViewT<ComponentView> {
|
|
|
105
111
|
// returns true if the fn ever returned true
|
|
106
112
|
bool runOnChildren(bool forward, Mso::Functor<bool(ComponentView &)> &fn) noexcept;
|
|
107
113
|
virtual RECT getClientRect() const noexcept;
|
|
114
|
+
winrt::Windows::Foundation::Point ScreenToLocal(winrt::Windows::Foundation::Point pt) noexcept;
|
|
115
|
+
winrt::Windows::Foundation::Point LocalToScreen(winrt::Windows::Foundation::Point pt) noexcept;
|
|
108
116
|
// The offset from this elements parent to its children (accounts for things like scroll position)
|
|
109
117
|
virtual facebook::react::Point getClientOffset() const noexcept;
|
|
110
118
|
virtual void onLosingFocus(const winrt::Microsoft::ReactNative::LosingFocusEventArgs &args) noexcept;
|
|
111
119
|
virtual void onGettingFocus(const winrt::Microsoft::ReactNative::GettingFocusEventArgs &args) noexcept;
|
|
112
120
|
virtual void onLostFocus(const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept;
|
|
113
121
|
virtual void onGotFocus(const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept;
|
|
114
|
-
void MarkAsCustomComponent() noexcept;
|
|
115
122
|
virtual void onMounted() noexcept;
|
|
123
|
+
bool isMounted() noexcept;
|
|
116
124
|
virtual void onUnmounted() noexcept;
|
|
117
125
|
void onDestroying() noexcept;
|
|
118
126
|
|
|
@@ -218,14 +226,6 @@ struct ComponentView : public ComponentViewT<ComponentView> {
|
|
|
218
226
|
void UserData(const winrt::IInspectable &userData) noexcept;
|
|
219
227
|
winrt::IInspectable UserData() const noexcept;
|
|
220
228
|
|
|
221
|
-
void CustomCommandHandler(const HandleCommandDelegate &handler) noexcept;
|
|
222
|
-
void UpdatePropsHandler(const UpdatePropsDelegate &handler) noexcept;
|
|
223
|
-
void UpdateStateHandler(const UpdateStateDelegate &handler) noexcept;
|
|
224
|
-
void UpdateEventEmitterHandler(const UpdateEventEmitterDelegate &handler) noexcept;
|
|
225
|
-
void MountChildComponentViewHandler(const MountChildComponentViewDelegate &handler) noexcept;
|
|
226
|
-
void UnmountChildComponentViewHandler(const UnmountChildComponentViewDelegate &handler) noexcept;
|
|
227
|
-
void FinalizeUpdateHandler(const UpdateFinalizerDelegate &handler) noexcept;
|
|
228
|
-
|
|
229
229
|
virtual void MountChildComponentView(
|
|
230
230
|
const winrt::Microsoft::ReactNative::ComponentView &childComponentView,
|
|
231
231
|
uint32_t index) noexcept;
|
|
@@ -253,7 +253,7 @@ struct ComponentView : public ComponentViewT<ComponentView> {
|
|
|
253
253
|
const winrt::Microsoft::ReactNative::Composition::Input::CharacterReceivedRoutedEventArgs &args) noexcept;
|
|
254
254
|
|
|
255
255
|
protected:
|
|
256
|
-
|
|
256
|
+
winrt::com_ptr<winrt::Microsoft::ReactNative::Composition::ReactCompositionViewComponentBuilder> m_builder;
|
|
257
257
|
bool m_mounted : 1 {false};
|
|
258
258
|
const facebook::react::Tag m_tag;
|
|
259
259
|
winrt::IInspectable m_userData;
|
|
@@ -265,14 +265,6 @@ struct ComponentView : public ComponentViewT<ComponentView> {
|
|
|
265
265
|
winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::ReactNative::ComponentView> m_children{
|
|
266
266
|
winrt::single_threaded_vector<winrt::Microsoft::ReactNative::ComponentView>()};
|
|
267
267
|
|
|
268
|
-
UpdatePropsDelegate m_updatePropsDelegate{nullptr};
|
|
269
|
-
UpdateStateDelegate m_updateStateDelegate{nullptr};
|
|
270
|
-
HandleCommandDelegate m_customCommandHandler{nullptr};
|
|
271
|
-
UpdateFinalizerDelegate m_finalizeUpdateHandler{nullptr};
|
|
272
|
-
MountChildComponentViewDelegate m_mountChildComponentViewHandler{nullptr};
|
|
273
|
-
UnmountChildComponentViewDelegate m_unmountChildComponentViewHandler{nullptr};
|
|
274
|
-
UpdateEventEmitterDelegate m_updateEventEmitterHandler{nullptr};
|
|
275
|
-
|
|
276
268
|
winrt::event<
|
|
277
269
|
winrt::Windows::Foundation::EventHandler<winrt::Microsoft::ReactNative::Composition::Input::KeyRoutedEventArgs>>
|
|
278
270
|
m_keyDownEvent;
|