react-native-windows 0.79.3 → 0.80.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 +12 -3
- package/Directory.Build.props +5 -2
- package/Libraries/Alert/Alert.d.ts +4 -1
- package/Libraries/Alert/Alert.js +3 -0
- package/Libraries/Alert/Alert.windows.js +3 -0
- package/Libraries/Alert/RCTAlertManager.js +17 -0
- package/Libraries/Animated/Animated.js.flow +1 -3
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +2 -2
- package/Libraries/Animated/AnimatedExports.js.flow +140 -0
- package/Libraries/Animated/AnimatedImplementation.js +2 -123
- package/Libraries/Animated/Easing.js +13 -15
- package/Libraries/Animated/animations/Animation.js +8 -4
- package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
- package/Libraries/Animated/components/AnimatedScrollView.js +48 -42
- package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
- package/Libraries/Animated/createAnimatedComponent.js +105 -57
- package/Libraries/Animated/nodes/AnimatedNode.js +4 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +46 -26
- package/Libraries/Animated/nodes/AnimatedValue.js +16 -7
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
- package/Libraries/AppState/AppState.js +7 -2
- package/Libraries/BatchedBridge/MessageQueue.js +2 -2
- package/Libraries/BatchedBridge/NativeModules.js +2 -0
- package/Libraries/Blob/BlobManager.js +1 -0
- package/Libraries/Blob/FileReader.js +219 -8
- package/Libraries/Blob/URL.js +37 -12
- package/Libraries/Blob/URLSearchParams.js +106 -31
- package/Libraries/Blob/URLSearchParams.js.flow +12 -7
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +1 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -0
- package/Libraries/Components/Button.d.ts +3 -0
- package/Libraries/Components/Button.js +1 -1
- package/Libraries/Components/Button.windows.js +27 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -3
- package/Libraries/{NewAppScreen/components/Colors.js → Components/DrawerAndroid/DrawerLayoutAndroid.ios.js} +6 -10
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +6 -66
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
- package/Libraries/Components/Flyout/Flyout.js +11 -0
- package/Libraries/Components/Keyboard/Keyboard.js +5 -3
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
- package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
- package/Libraries/Components/Popup/Popup.js +11 -0
- package/Libraries/Components/Pressable/Pressable.js +20 -4
- package/Libraries/Components/Pressable/Pressable.windows.js +20 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +25 -3
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +3 -3
- package/Libraries/Components/ScrollView/ScrollView.js +132 -122
- package/Libraries/Components/ScrollView/ScrollView.windows.js +131 -122
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/Switch/Switch.d.ts +3 -0
- package/Libraries/Components/Switch/Switch.js +8 -4
- package/Libraries/Components/Switch/Switch.windows.js +17 -4
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -4
- package/Libraries/Components/TextInput/TextInput.d.ts +70 -33
- package/Libraries/Components/TextInput/TextInput.flow.js +100 -51
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +1246 -0
- package/Libraries/Components/TextInput/TextInput.js +88 -1027
- package/Libraries/Components/TextInput/TextInput.windows.js +104 -1092
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +2 -1
- package/Libraries/{Modal/ModalInjection.js → Components/ToastAndroid/ToastAndroid.ios.js} +3 -5
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +4 -32
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
- package/Libraries/Components/Touchable/Touchable.js +5 -5
- package/Libraries/Components/Touchable/Touchable.windows.js +5 -5
- package/Libraries/Components/Touchable/TouchableBounce.js +14 -7
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +14 -7
- package/Libraries/Components/Touchable/TouchableHighlight.js +10 -7
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +10 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +6 -6
- package/Libraries/Components/Touchable/TouchableOpacity.js +13 -6
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +13 -6
- package/Libraries/Components/View/View.js +18 -21
- package/Libraries/Components/View/View.windows.js +39 -41
- package/Libraries/Components/View/ViewAccessibility.d.ts +8 -0
- package/Libraries/Components/View/ViewAccessibility.js +25 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +9 -1
- package/Libraries/Components/View/ViewPropTypes.js +49 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +50 -2
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/setUpReactDevTools.js +5 -5
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +3 -3
- package/Libraries/EventEmitter/NativeEventEmitter.js +9 -4
- package/Libraries/Image/AssetSourceResolver.js +17 -4
- package/Libraries/Image/AssetSourceResolver.windows.js +17 -4
- package/Libraries/Image/Image.d.ts +26 -10
- package/Libraries/Image/Image.js +17 -0
- package/Libraries/Image/Image.js.flow +5 -5
- package/Libraries/Image/Image.windows.js +13 -1
- package/Libraries/Image/ImageBackground.js +2 -0
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageProps.js +22 -17
- package/Libraries/Image/ImageSource.js +3 -1
- package/Libraries/Image/ImageSourceUtils.js +4 -2
- package/Libraries/Image/ImageTypes.flow.js +1 -1
- package/Libraries/Interaction/InteractionManager.d.ts +13 -0
- package/Libraries/Interaction/InteractionManager.js +1 -1
- package/Libraries/Interaction/PanResponder.js +3 -3
- package/Libraries/Interaction/TaskQueue.js +1 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -2
- package/Libraries/Lists/FlatList.js +8 -11
- package/Libraries/Lists/SectionList.js +39 -42
- package/Libraries/Lists/SectionListModern.js +25 -34
- package/Libraries/Lists/VirtualizedList.js +1 -0
- package/Libraries/Lists/VirtualizedSectionList.js +1 -0
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
- package/Libraries/Modal/Modal.js +33 -7
- package/Libraries/Modal/Modal.windows.js +33 -10
- package/Libraries/NativeComponent/BaseViewConfig.android.js +2 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -0
- package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -0
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
- package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js +17 -0
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +781 -10
- package/Libraries/Performance/Systrace.js +7 -7
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.windows.js +1 -1
- package/Libraries/ReactNative/AppContainer-dev.js +5 -4
- package/Libraries/ReactNative/AppRegistry.flow.js +49 -0
- package/Libraries/ReactNative/AppRegistry.js +2 -322
- package/Libraries/ReactNative/AppRegistry.js.flow +23 -0
- package/Libraries/ReactNative/AppRegistryImpl.js +316 -0
- package/Libraries/ReactNative/FabricUIManager.js +10 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -4
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -4
- package/Libraries/ReactNative/RendererImplementation.js +10 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -0
- package/Libraries/ReactNative/renderApplication.js +9 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -3
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +51 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +4840 -4748
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +4947 -4829
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3998 -3888
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5005 -4948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2744 -2652
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5020 -4933
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -3
- package/Libraries/Settings/Settings.ios.js +1 -0
- package/Libraries/Settings/Settings.js +13 -19
- package/Libraries/Settings/SettingsFallback.js +33 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +6 -0
- package/Libraries/StyleSheet/Rect.js +1 -0
- package/Libraries/StyleSheet/StyleSheet.js +31 -200
- package/Libraries/StyleSheet/StyleSheet.js.flow +188 -0
- package/Libraries/StyleSheet/StyleSheetExports.js +210 -0
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +112 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +130 -52
- package/Libraries/StyleSheet/flattenStyle.js +14 -4
- package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
- package/Libraries/StyleSheet/processBackgroundImage.js +670 -214
- package/Libraries/Text/Text.d.ts +2 -5
- package/Libraries/Text/Text.js +3 -3
- package/Libraries/Text/Text.windows.js +3 -3
- package/Libraries/Text/TextNativeComponent.js +0 -4
- package/Libraries/Text/TextProps.js +5 -33
- package/Libraries/Text/TextProps.windows.js +5 -32
- package/Libraries/Types/CodegenTypesNamespace.d.ts +45 -0
- package/Libraries/{Blob/__mocks__/BlobModule.js → Types/CodegenTypesNamespace.js} +4 -6
- package/Libraries/Types/CoreEventTypes.d.ts +6 -1
- package/Libraries/Types/CoreEventTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.windows.js +1 -1
- package/Libraries/Utilities/Appearance.js +2 -0
- package/Libraries/Utilities/BackHandler.js +17 -0
- package/Libraries/Utilities/DeviceInfo.js +2 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Platform.js +17 -0
- package/Libraries/Utilities/PlatformTypes.js +11 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +2 -2
- package/Libraries/Utilities/codegenNativeCommands.d.ts +18 -0
- package/Libraries/Utilities/codegenNativeComponent.d.ts +26 -0
- package/Libraries/WebSocket/WebSocket.js +313 -8
- package/Libraries/vendor/core/ErrorUtils.js +28 -2
- package/Libraries/vendor/emitter/EventEmitter.js +6 -2
- package/Microsoft.ReactNative/CompositionSwitcher.idl +8 -0
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +0 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +197 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +34 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +12 -0
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +36 -33
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +81 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +5 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +148 -14
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +4 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.cpp +29 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.h +2 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +17 -34
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +4 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +16 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +9 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +4 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +34 -94
- package/Microsoft.ReactNative/Modules/SampleTurboModule.cpp +4 -0
- package/Microsoft.ReactNative/Modules/SampleTurboModule.h +3 -0
- package/Microsoft.ReactNative/TurboModulesProvider.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/React.Cpp.props +4 -0
- package/README.md +2 -2
- package/ReactCommon/ReactCommon.vcxproj +9 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +6 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +253 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +5 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +4 -8
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +184 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +22 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +2 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +27 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +2 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +308 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/DynamicEventPayload.cpp +42 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +7 -51
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +10 -5
- package/Scripts/creaternwapp.cmd +9 -3
- package/Shared/Shared.vcxitems +3 -2
- package/Shared/Shared.vcxitems.filters +2 -1
- package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
- package/codegen/NativePerformanceSpec.g.h +14 -0
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +151 -127
- package/codegen/NativeSampleTurboModuleSpec.g.h +14 -8
- package/codegen/react/components/rnwcore/EventEmitters.cpp +48 -48
- package/codegen/rnwcoreJSI-generated.cpp +159 -129
- package/codegen/rnwcoreJSI.h +534 -408
- package/index.js +51 -331
- package/index.windows.js +70 -352
- package/interface.js +0 -4
- package/jest/resolver.js +31 -0
- package/jest/setup.js +6 -2
- package/package.json +29 -28
- package/src/private/animated/NativeAnimatedHelper.js +21 -8
- package/src/private/animated/createAnimatedPropsHook.js +11 -16
- package/src/private/animated/createAnimatedPropsMemoHook.js +1 -2
- package/src/private/components/{SafeAreaView_INTERNAL_DO_NOT_USE.js → safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js} +6 -6
- package/src/private/components/{HScrollViewNativeComponents.js → scrollview/HScrollViewNativeComponents.js} +8 -8
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +25 -0
- package/src/private/{devmenu → devsupport/devmenu}/DevMenu.js +1 -1
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/BorderBox.js +3 -3
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/BoxInspector.js +6 -5
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementBox.js +8 -6
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementProperties.js +11 -10
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/Inspector.js +14 -12
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorOverlay.js +5 -4
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorPanel.js +9 -8
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/NetworkOverlay.js +10 -9
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ReactDevToolsOverlay.js +7 -7
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/StyleInspector.js +7 -6
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/XHRInterceptor.js +2 -2
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/getInspectorDataForViewAtPoint.js +4 -4
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/resolveBoxStyle.js +1 -1
- package/src/private/{inspector → devsupport/devmenu/perfmonitor}/PerformanceOverlay.js +6 -5
- package/src/private/{specs_DEPRECATED/modules → devsupport/devmenu/specs}/NativeDevMenu.js +2 -2
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.android.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.ios.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.windows.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/setUpFuseboxReactDevToolsDispatcher.js +1 -1
- package/src/private/{fusebox → devsupport/rndevtools}/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
- package/src/private/{specs_DEPRECATED/modules → devsupport/rndevtools/specs}/NativeReactDevToolsSettingsManager.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +82 -80
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +12 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -13
- package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +3 -0
- package/src/private/styles/composeStyles.js +12 -5
- package/src/private/types/HostComponent.js +1 -1
- package/src/private/types/HostInstance.js +67 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -5
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -18
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +6 -0
- package/src/private/webapis/performance/Performance.js +1 -3
- package/src/private/webapis/performance/PerformanceEntry.js +6 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +10 -1
- package/src/types/globals.d.ts +42 -0
- package/stubs/double-conversion/double-conversion.h +3 -1
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +4 -0
- package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +4 -0
- package/types/index.d.ts +6 -3
- package/types/public/ReactNativeTypes.d.ts +2 -2
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +0 -38
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +0 -22
- package/Libraries/Blob/FileReader_new.js +0 -231
- package/Libraries/Blob/FileReader_old.js +0 -186
- package/Libraries/Blob/__mocks__/FileReaderModule.js +0 -20
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +0 -32
- package/Libraries/Core/__mocks__/ErrorUtils.js +0 -33
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -19
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +0 -49
- package/Libraries/Events/CustomEvent.js +0 -32
- package/Libraries/Events/EventPolyfill.js +0 -239
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +0 -118
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +0 -134
- package/Libraries/Network/XMLHttpRequest_new.js +0 -794
- package/Libraries/Network/XMLHttpRequest_old.js +0 -701
- package/Libraries/NewAppScreen/components/DebugInstructions.js +0 -41
- package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +0 -30
- package/Libraries/NewAppScreen/components/Header.js +0 -77
- package/Libraries/NewAppScreen/components/HermesBadge.js +0 -53
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -148
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +0 -39
- package/Libraries/NewAppScreen/components/ReloadInstructions.windows.js +0 -31
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/NewAppScreen/index.js +0 -25
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -58
- package/Libraries/Utilities/__mocks__/BackHandler.js +0 -45
- package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +0 -16
- package/Libraries/Utilities/__mocks__/PixelRatio.js +0 -25
- package/Libraries/WebSocket/WebSocketEvent.js +0 -30
- package/Libraries/WebSocket/WebSocket_new.js +0 -325
- package/Libraries/WebSocket/WebSocket_old.js +0 -297
- package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -30
- package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +0 -81
- package/jest/__tests__/setup-test.js +0 -18
- package/src/private/components/VScrollViewNativeComponents.js +0 -25
- package/src/private/utilities/ensureInstance.js +0 -21
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +0 -267
- package/types/modules/LaunchScreen.d.ts +0 -18
- /package/src/private/{devmenu → devsupport/devmenu}/DevMenu.d.ts +0 -0
- /package/src/private/{debugging → devsupport/rndevtools}/FuseboxSessionObserver.js +0 -0
|
@@ -25,10 +25,11 @@ Size WindowsTextInputShadowNode::measureContent(
|
|
|
25
25
|
const LayoutContext &layoutContext,
|
|
26
26
|
const LayoutConstraints &layoutConstraints) const {
|
|
27
27
|
// Layout is called right after measure.
|
|
28
|
-
// Measure is marked as `const`, and `layout` is not; so State can be
|
|
29
|
-
// during layout, but not during `measure`. If State is out-of-date
|
|
30
|
-
// it's too late: measure will have already operated on old
|
|
31
|
-
// use the same value here that we *will* use in layout to
|
|
28
|
+
// Measure is marked as `const`, and `layout` is not; so State can be
|
|
29
|
+
// updated during layout, but not during `measure`. If State is out-of-date
|
|
30
|
+
// in layout, it's too late: measure will have already operated on old
|
|
31
|
+
// State. Thus, we use the same value here that we *will* use in layout to
|
|
32
|
+
// update the state.
|
|
32
33
|
AttributedString attributedString = getMostRecentAttributedString(layoutContext);
|
|
33
34
|
|
|
34
35
|
if (attributedString.isEmpty()) {
|
|
@@ -88,9 +89,8 @@ LayoutConstraints WindowsTextInputShadowNode::getTextConstraints(const LayoutCon
|
|
|
88
89
|
|
|
89
90
|
void WindowsTextInputShadowNode::updateStateIfNeeded(const LayoutContext &layoutContext) {
|
|
90
91
|
ensureUnsealed();
|
|
91
|
-
|
|
92
|
-
auto reactTreeAttributedString = getAttributedString(layoutContext);
|
|
93
92
|
const auto &stateData = getStateData();
|
|
93
|
+
auto reactTreeAttributedString = getAttributedString(layoutContext);
|
|
94
94
|
|
|
95
95
|
// Tree is often out of sync with the value of the TextInput.
|
|
96
96
|
// This is by design - don't change the value of the TextInput in the State,
|
|
@@ -124,6 +124,7 @@ void WindowsTextInputShadowNode::updateStateIfNeeded(const LayoutContext &layout
|
|
|
124
124
|
// current attributedString unchanged, and pass in zero for the "event count"
|
|
125
125
|
// so no changes are applied There's no way to prevent a state update from
|
|
126
126
|
// flowing to Java, so we just ensure it's a noop in those cases.
|
|
127
|
+
|
|
127
128
|
setStateData(facebook::react::TextInputState{
|
|
128
129
|
AttributedStringBox(newAttributedString), reactTreeAttributedString, {}, newEventCount});
|
|
129
130
|
}
|
|
@@ -133,7 +134,6 @@ AttributedString WindowsTextInputShadowNode::getAttributedString(const LayoutCon
|
|
|
133
134
|
|
|
134
135
|
auto childTextAttributes = TextAttributes::defaultTextAttributes();
|
|
135
136
|
childTextAttributes.fontSizeMultiplier = layoutContext.fontSizeMultiplier;
|
|
136
|
-
|
|
137
137
|
childTextAttributes.apply(getConcreteProps().textAttributes);
|
|
138
138
|
// Don't propagate the background color of the TextInput onto the attributed
|
|
139
139
|
// string. Android tries to render shadow of the background alongside the
|
|
@@ -151,6 +151,7 @@ AttributedString WindowsTextInputShadowNode::getAttributedString(const LayoutCon
|
|
|
151
151
|
auto textAttributes = TextAttributes::defaultTextAttributes();
|
|
152
152
|
textAttributes.fontSizeMultiplier = layoutContext.fontSizeMultiplier;
|
|
153
153
|
textAttributes.apply(getConcreteProps().textAttributes);
|
|
154
|
+
textAttributes.fontSizeMultiplier = layoutContext.fontSizeMultiplier;
|
|
154
155
|
auto fragment = AttributedString::Fragment{};
|
|
155
156
|
fragment.string = getConcreteProps().text;
|
|
156
157
|
fragment.textAttributes = textAttributes;
|
|
@@ -187,36 +188,18 @@ AttributedString WindowsTextInputShadowNode::getMostRecentAttributedString(const
|
|
|
187
188
|
// TODO T67606511: We will redefine the measurement of empty strings as part
|
|
188
189
|
// of T67606511
|
|
189
190
|
AttributedString WindowsTextInputShadowNode::getPlaceholderAttributedString(const LayoutContext &layoutContext) const {
|
|
190
|
-
|
|
191
|
-
auto textAttributedString = AttributedString{};
|
|
192
|
-
auto fragment = AttributedString::Fragment{};
|
|
193
|
-
fragment.string = getConcreteProps().placeholder;
|
|
194
|
-
|
|
195
|
-
if (fragment.string.empty()) {
|
|
196
|
-
fragment.string = BaseTextShadowNode::getEmptyPlaceholder();
|
|
197
|
-
}
|
|
191
|
+
const auto &props = BaseShadowNode::getConcreteProps();
|
|
198
192
|
|
|
193
|
+
AttributedString attributedString;
|
|
194
|
+
auto placeholderString = !props.placeholder.empty() ? props.placeholder : BaseTextShadowNode::getEmptyPlaceholder();
|
|
199
195
|
auto textAttributes = TextAttributes::defaultTextAttributes();
|
|
200
196
|
textAttributes.fontSizeMultiplier = layoutContext.fontSizeMultiplier;
|
|
201
|
-
textAttributes.apply(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
textAttributedString.appendFragment(std::move(fragment));
|
|
208
|
-
|
|
209
|
-
return textAttributedString;
|
|
210
|
-
// TextLayoutContext textLayoutContext;
|
|
211
|
-
// textLayoutContext.pointScaleFactor = layoutContext.pointScaleFactor;
|
|
212
|
-
// auto textSize = textLayoutManager_
|
|
213
|
-
// ->measure(
|
|
214
|
-
// AttributedStringBox{attributedString},
|
|
215
|
-
// getConcreteProps().paragraphAttributes,
|
|
216
|
-
// textLayoutContext,
|
|
217
|
-
// textConstraints)
|
|
218
|
-
// .size;
|
|
219
|
-
// return layoutConstraints.clamp(textSize);
|
|
197
|
+
textAttributes.apply(props.textAttributes);
|
|
198
|
+
attributedString.appendFragment(
|
|
199
|
+
{.string = std::move(placeholderString),
|
|
200
|
+
.textAttributes = textAttributes,
|
|
201
|
+
.parentShadowView = ShadowView(*this)});
|
|
202
|
+
return attributedString;
|
|
220
203
|
}
|
|
221
204
|
|
|
222
205
|
#pragma mark - LayoutableShadowNode
|
|
@@ -465,6 +465,10 @@ void FabricUIManager::schedulerDidSetIsJSResponder(
|
|
|
465
465
|
bool isJSResponder,
|
|
466
466
|
bool blockNativeResponder) {}
|
|
467
467
|
|
|
468
|
+
void FabricUIManager::schedulerShouldSynchronouslyUpdateViewOnUIThread(
|
|
469
|
+
facebook::react::Tag tag,
|
|
470
|
+
const folly::dynamic &props) {}
|
|
471
|
+
|
|
468
472
|
void FabricUIManager::schedulerDidSendAccessibilityEvent(
|
|
469
473
|
const facebook::react::ShadowView &shadowView,
|
|
470
474
|
std::string const &eventType) {
|
|
@@ -99,6 +99,8 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
99
99
|
facebook::react::ShadowView const &shadowView,
|
|
100
100
|
bool isJSResponder,
|
|
101
101
|
bool blockNativeResponder) override;
|
|
102
|
+
virtual void schedulerShouldSynchronouslyUpdateViewOnUIThread(facebook::react::Tag tag, const folly::dynamic &props)
|
|
103
|
+
override;
|
|
102
104
|
virtual void schedulerDidSendAccessibilityEvent(
|
|
103
105
|
const facebook::react::ShadowView &shadowView,
|
|
104
106
|
std::string const &eventType) override;
|
|
@@ -64,4 +64,20 @@ void HostPlatformViewEventEmitter::onPressIn(GestureResponderEvent event) const
|
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
void HostPlatformViewEventEmitter::onPressOut(GestureResponderEvent event) const {
|
|
68
|
+
dispatchEvent("pressOut", [event](jsi::Runtime &runtime) {
|
|
69
|
+
auto payload = jsi::Object(runtime);
|
|
70
|
+
auto nativeEvent = jsi::Object(runtime);
|
|
71
|
+
nativeEvent.setProperty(runtime, "target", static_cast<double>(event.target));
|
|
72
|
+
nativeEvent.setProperty(runtime, "pageX", event.pagePoint.x);
|
|
73
|
+
nativeEvent.setProperty(runtime, "pageY", event.pagePoint.y);
|
|
74
|
+
nativeEvent.setProperty(runtime, "locationX", event.offsetPoint.x);
|
|
75
|
+
nativeEvent.setProperty(runtime, "locationY", event.offsetPoint.y);
|
|
76
|
+
nativeEvent.setProperty(runtime, "timestamp", event.timestamp);
|
|
77
|
+
nativeEvent.setProperty(runtime, "identifier", event.identifier);
|
|
78
|
+
payload.setProperty(runtime, "nativeEvent", nativeEvent);
|
|
79
|
+
return payload;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
67
83
|
} // namespace facebook::react
|
|
@@ -39,6 +39,7 @@ class HostPlatformViewEventEmitter : public BaseViewEventEmitter {
|
|
|
39
39
|
#pragma mark - Touch Events
|
|
40
40
|
|
|
41
41
|
virtual void onPressIn(GestureResponderEvent event) const;
|
|
42
|
+
virtual void onPressOut(GestureResponderEvent event) const;
|
|
42
43
|
};
|
|
43
44
|
|
|
44
45
|
} // namespace facebook::react
|
|
@@ -56,6 +56,14 @@ HostPlatformViewProps::HostPlatformViewProps(
|
|
|
56
56
|
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
57
57
|
? sourceProps.accessibilityAccessKey
|
|
58
58
|
: convertRawProp(context, rawProps, "accessibilityAccessKey", sourceProps.accessibilityAccessKey, {})),
|
|
59
|
+
accessibilityDescription(
|
|
60
|
+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter() ? sourceProps.accessibilityDescription
|
|
61
|
+
: convertRawProp(
|
|
62
|
+
context,
|
|
63
|
+
rawProps,
|
|
64
|
+
"accessibilityDescription",
|
|
65
|
+
sourceProps.accessibilityDescription,
|
|
66
|
+
{})),
|
|
59
67
|
accessibilityLiveRegion(
|
|
60
68
|
ReactNativeFeatureFlags::enableCppPropsIteratorSetter() ? sourceProps.accessibilityLiveRegion
|
|
61
69
|
: convertRawProp(
|
|
@@ -104,6 +112,7 @@ void HostPlatformViewProps::setProp(
|
|
|
104
112
|
RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLevel);
|
|
105
113
|
RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityItemType);
|
|
106
114
|
RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityAccessKey);
|
|
115
|
+
RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityDescription);
|
|
107
116
|
RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityLiveRegion);
|
|
108
117
|
RAW_SET_PROP_SWITCH_CASE_BASIC(keyDownEvents);
|
|
109
118
|
RAW_SET_PROP_SWITCH_CASE_BASIC(keyUpEvents);
|
package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h
CHANGED
|
@@ -32,6 +32,7 @@ class HostPlatformViewProps : public BaseViewProps {
|
|
|
32
32
|
std::optional<AccessibilityAnnotation> accessibilityAnnotation{};
|
|
33
33
|
std::optional<std::string> accessibilityItemType{};
|
|
34
34
|
std::optional<std::string> accessibilityAccessKey{};
|
|
35
|
+
std::optional<std::string> accessibilityDescription{};
|
|
35
36
|
|
|
36
37
|
// std::optional<std::string> overflowAnchor{};
|
|
37
38
|
std::optional<std::string> tooltip{};
|
|
@@ -67,9 +67,7 @@ class AttachmentInlineObject : public winrt::implements<AttachmentInlineObject,
|
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
TextLayoutManager::TextLayoutManager(const ContextContainer::Shared &contextContainer)
|
|
70
|
-
: contextContainer_(contextContainer),
|
|
71
|
-
textMeasureCache_(kSimpleThreadSafeCacheSizeCap),
|
|
72
|
-
lineMeasureCache_(kSimpleThreadSafeCacheSizeCap) {}
|
|
70
|
+
: contextContainer_(contextContainer), textMeasureCache_(kSimpleThreadSafeCacheSizeCap) {}
|
|
73
71
|
|
|
74
72
|
WindowsTextLayoutManager::WindowsTextLayoutManager(const ContextContainer::Shared &contextContainer)
|
|
75
73
|
: TextLayoutManager(contextContainer) {}
|
|
@@ -160,7 +158,6 @@ void WindowsTextLayoutManager::GetTextLayout(
|
|
|
160
158
|
|
|
161
159
|
// Get text with Object Replacement Characters for attachments
|
|
162
160
|
auto str = GetTransformedText(attributedStringBox);
|
|
163
|
-
|
|
164
161
|
winrt::check_hresult(Microsoft::ReactNative::DWriteFactory()->CreateTextLayout(
|
|
165
162
|
str.c_str(), // The string to be laid out and formatted.
|
|
166
163
|
static_cast<UINT32>(str.size()), // The length of the string.
|
|
@@ -170,6 +167,39 @@ void WindowsTextLayoutManager::GetTextLayout(
|
|
|
170
167
|
spTextLayout.put() // The IDWriteTextLayout interface pointer.
|
|
171
168
|
));
|
|
172
169
|
|
|
170
|
+
// Apply max width constraint and ellipsis trimming to ensure consistency with rendering
|
|
171
|
+
DWRITE_TEXT_METRICS metrics;
|
|
172
|
+
winrt::check_hresult(spTextLayout->GetMetrics(&metrics));
|
|
173
|
+
|
|
174
|
+
if (metrics.width > size.width) {
|
|
175
|
+
spTextLayout->SetMaxWidth(size.width);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Apply DWRITE_TRIMMING for ellipsizeMode
|
|
179
|
+
DWRITE_TRIMMING trimming = {};
|
|
180
|
+
winrt::com_ptr<IDWriteInlineObject> ellipsisSign;
|
|
181
|
+
|
|
182
|
+
switch (paragraphAttributes.ellipsizeMode) {
|
|
183
|
+
case facebook::react::EllipsizeMode::Tail:
|
|
184
|
+
trimming.granularity = DWRITE_TRIMMING_GRANULARITY_CHARACTER;
|
|
185
|
+
break;
|
|
186
|
+
case facebook::react::EllipsizeMode::Clip:
|
|
187
|
+
trimming.granularity = DWRITE_TRIMMING_GRANULARITY_NONE;
|
|
188
|
+
break;
|
|
189
|
+
default:
|
|
190
|
+
trimming.granularity = DWRITE_TRIMMING_GRANULARITY_CHARACTER; // Default to tail behavior
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Use DWriteFactory to create the ellipsis trimming sign
|
|
195
|
+
if (trimming.granularity != DWRITE_TRIMMING_GRANULARITY_NONE) {
|
|
196
|
+
auto dwriteFactory = Microsoft::ReactNative::DWriteFactory();
|
|
197
|
+
HRESULT hr = dwriteFactory->CreateEllipsisTrimmingSign(spTextLayout.get(), ellipsisSign.put());
|
|
198
|
+
if (SUCCEEDED(hr)) {
|
|
199
|
+
spTextLayout->SetTrimming(&trimming, ellipsisSign.get());
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
173
203
|
// Calculate positions for attachments and set inline objects
|
|
174
204
|
unsigned int position = 0;
|
|
175
205
|
for (const auto &fragment : fragments) {
|
|
@@ -408,96 +438,6 @@ Microsoft::ReactNative::TextTransform ConvertTextTransform(std::optional<TextTra
|
|
|
408
438
|
return Microsoft::ReactNative::TextTransform::Undefined;
|
|
409
439
|
}
|
|
410
440
|
|
|
411
|
-
LinesMeasurements TextLayoutManager::measureLines(
|
|
412
|
-
const AttributedStringBox &attributedStringBox,
|
|
413
|
-
const ParagraphAttributes ¶graphAttributes,
|
|
414
|
-
const Size &size) const {
|
|
415
|
-
LinesMeasurements lineMeasurements{};
|
|
416
|
-
|
|
417
|
-
winrt::com_ptr<IDWriteTextLayout> spTextLayout;
|
|
418
|
-
TextMeasurement::Attachments attachments;
|
|
419
|
-
WindowsTextLayoutManager::GetTextLayout(attributedStringBox, paragraphAttributes, size, spTextLayout, attachments);
|
|
420
|
-
|
|
421
|
-
if (spTextLayout) {
|
|
422
|
-
std::vector<DWRITE_LINE_METRICS> lineMetrics;
|
|
423
|
-
uint32_t actualLineCount;
|
|
424
|
-
spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
|
|
425
|
-
lineMetrics.resize(static_cast<size_t>(actualLineCount));
|
|
426
|
-
winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
|
|
427
|
-
uint32_t startRange = 0;
|
|
428
|
-
const auto count = (paragraphAttributes.maximumNumberOfLines > 0)
|
|
429
|
-
? std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount)
|
|
430
|
-
: actualLineCount;
|
|
431
|
-
for (uint32_t i = 0; i < count; ++i) {
|
|
432
|
-
UINT32 actualHitTestCount = 0;
|
|
433
|
-
spTextLayout->HitTestTextRange(
|
|
434
|
-
startRange,
|
|
435
|
-
lineMetrics[i].length,
|
|
436
|
-
0, // x
|
|
437
|
-
0, // y
|
|
438
|
-
NULL,
|
|
439
|
-
0, // metrics count
|
|
440
|
-
&actualHitTestCount);
|
|
441
|
-
|
|
442
|
-
// Allocate enough room to return all hit-test metrics.
|
|
443
|
-
std::vector<DWRITE_HIT_TEST_METRICS> hitTestMetrics(actualHitTestCount);
|
|
444
|
-
spTextLayout->HitTestTextRange(
|
|
445
|
-
startRange,
|
|
446
|
-
lineMetrics[i].length,
|
|
447
|
-
0, // x
|
|
448
|
-
0, // y
|
|
449
|
-
&hitTestMetrics[0],
|
|
450
|
-
static_cast<UINT32>(hitTestMetrics.size()),
|
|
451
|
-
&actualHitTestCount);
|
|
452
|
-
|
|
453
|
-
float width = 0;
|
|
454
|
-
for (auto tm : hitTestMetrics) {
|
|
455
|
-
width += tm.width;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
std::string str;
|
|
459
|
-
const auto &attributedString = attributedStringBox.getValue();
|
|
460
|
-
for (const auto &fragment : attributedString.getFragments()) {
|
|
461
|
-
str = str +
|
|
462
|
-
winrt::to_string(Microsoft::ReactNative::TransformableText::TransformText(
|
|
463
|
-
winrt::hstring{Microsoft::Common::Unicode::Utf8ToUtf16(fragment.string)},
|
|
464
|
-
ConvertTextTransform(fragment.textAttributes.textTransform)));
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
lineMeasurements.emplace_back(LineMeasurement(
|
|
468
|
-
str.substr(startRange, lineMetrics[i].length),
|
|
469
|
-
{{hitTestMetrics[0].left, hitTestMetrics[0].top}, // origin
|
|
470
|
-
{width, lineMetrics[i].height}},
|
|
471
|
-
0.0f, // TODO descender
|
|
472
|
-
0.0f, // TODO: capHeight
|
|
473
|
-
0.0f, // TODO ascender
|
|
474
|
-
0.0f // TODO: xHeight
|
|
475
|
-
));
|
|
476
|
-
|
|
477
|
-
startRange += lineMetrics[i].length;
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
return lineMeasurements;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
Float TextLayoutManager::baseline(
|
|
485
|
-
const AttributedStringBox &attributedStringBox,
|
|
486
|
-
const ParagraphAttributes ¶graphAttributes,
|
|
487
|
-
const Size &size) const {
|
|
488
|
-
winrt::com_ptr<IDWriteTextLayout> spTextLayout;
|
|
489
|
-
TextMeasurement::Attachments attachments;
|
|
490
|
-
WindowsTextLayoutManager::GetTextLayout(attributedStringBox, paragraphAttributes, size, spTextLayout, attachments);
|
|
491
|
-
if (!spTextLayout) {
|
|
492
|
-
return 0;
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
DWRITE_TEXT_METRICS metrics;
|
|
496
|
-
winrt::check_hresult(spTextLayout->GetMetrics(&metrics));
|
|
497
|
-
return metrics.height *
|
|
498
|
-
0.8f; // https://learn.microsoft.com/en-us/windows/win32/api/dwrite/nf-dwrite-idwritetextformat-getlinespacing
|
|
499
|
-
}
|
|
500
|
-
|
|
501
441
|
winrt::hstring WindowsTextLayoutManager::GetTransformedText(const AttributedStringBox &attributedStringBox) {
|
|
502
442
|
winrt::hstring result{};
|
|
503
443
|
const auto &attributedString = attributedStringBox.getValue();
|
|
@@ -118,4 +118,8 @@ void SampleTurboModule::promiseAssert(::React::ReactPromise<void> &&result) noex
|
|
|
118
118
|
// TODO: Proper impl
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
+
void SampleTurboModule::getImageUrl(::React::ReactPromise<void> &&result) noexcept {
|
|
122
|
+
// TODO: Proper impl
|
|
123
|
+
}
|
|
124
|
+
|
|
121
125
|
} // namespace Microsoft::ReactNative
|
|
@@ -83,6 +83,9 @@ struct SampleTurboModule {
|
|
|
83
83
|
REACT_METHOD(promiseAssert)
|
|
84
84
|
void promiseAssert(::React::ReactPromise<void> &&result) noexcept;
|
|
85
85
|
|
|
86
|
+
REACT_METHOD(getImageUrl)
|
|
87
|
+
void getImageUrl(::React::ReactPromise<void> &&result) noexcept;
|
|
88
|
+
|
|
86
89
|
private:
|
|
87
90
|
winrt::Microsoft::ReactNative::ReactContext m_reactContext;
|
|
88
91
|
};
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
#ifndef MICROSOFT_REACTNATIVE_JSI_LONGLIVEDJSIVALUE_
|
|
5
5
|
#define MICROSOFT_REACTNATIVE_JSI_LONGLIVEDJSIVALUE_
|
|
6
6
|
|
|
7
|
-
#include <ReactCommon/LongLivedObject.h>
|
|
8
7
|
#include <jsi/jsi.h>
|
|
8
|
+
#include <react/bridging/LongLivedObject.h>
|
|
9
9
|
|
|
10
10
|
namespace winrt::Microsoft::ReactNative {
|
|
11
11
|
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
-->
|
|
11
11
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<ReactNativeWindowsVersion>0.
|
|
13
|
+
<ReactNativeWindowsVersion>0.80.0-preview.1</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
|
-
<ReactNativeWindowsMinor>
|
|
16
|
-
<ReactNativeWindowsPatch>
|
|
15
|
+
<ReactNativeWindowsMinor>80</ReactNativeWindowsMinor>
|
|
16
|
+
<ReactNativeWindowsPatch>0</ReactNativeWindowsPatch>
|
|
17
17
|
<ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
|
|
18
|
-
<ReactNativeWindowsCommitId>
|
|
18
|
+
<ReactNativeWindowsCommitId>79b0da7bfd78f59a7de9a025ab750e11005766e6</ReactNativeWindowsCommitId>
|
|
19
19
|
</PropertyGroup>
|
|
20
20
|
</Project>
|
|
@@ -160,6 +160,10 @@
|
|
|
160
160
|
$(ReactNativeDir)\ReactCommon\react\renderer\graphics\platform\cxx;
|
|
161
161
|
$(ReactNativeDir)\ReactCommon\react\renderer\components\view\platform\cxx;
|
|
162
162
|
$(ReactNativeDir)\ReactCommon\react\renderer\imagemanager\platform\cxx;
|
|
163
|
+
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\cxx;
|
|
164
|
+
$(ReactNativeDir)\ReactCommon\react\renderer\components\text\platform\cxx\react\renderer\components\text;
|
|
165
|
+
$(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\platform\cxx;
|
|
166
|
+
$(ReactNativeDir)\ReactCommon\react\utils\platform\cxx;
|
|
163
167
|
%(AdditionalIncludeDirectories);
|
|
164
168
|
</AdditionalIncludeDirectories>
|
|
165
169
|
</ClCompile>
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
6
|
<a href="https://twitter.com/intent/follow?&screen_name=ReactNativeMSFT">
|
|
7
|
-
<img src="https://img.shields.io/twitter/follow/
|
|
7
|
+
<img src="https://img.shields.io/twitter/follow/ReactNativeMSFT?style=for-the-badge&logo=X&labelColor=black&color=white" alt="Follow @ReactNativeMSFT" />
|
|
8
8
|
</a>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
@@ -68,7 +68,7 @@ React Native has [great documentation](https://reactnative.dev/docs/getting-star
|
|
|
68
68
|
## 📢 Contributing
|
|
69
69
|
See [Contributing guidelines](https://github.com/microsoft/react-native-windows/blob/main/CONTRIBUTING.md) for how to setup your fork of the repo and start a PR to contribute to React Native for Windows.
|
|
70
70
|
|
|
71
|
-
Not sure where to start? The [good first issue](https://github.com/microsoft/react-native-windows/
|
|
71
|
+
Not sure where to start? The [good first issue](https://github.com/microsoft/react-native-windows/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22) and [help wanted](https://github.com/microsoft/react-native-windows/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22help%20wanted%22) labels are the best starting points.
|
|
72
72
|
|
|
73
73
|
## Code of Conduct
|
|
74
74
|
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsi\jsi\instrumentation.h" />
|
|
90
90
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsi\jsi\jsi-inl.h" />
|
|
91
91
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsi\jsi\jsi.h" />
|
|
92
|
-
<CIInclude Include="$(ReactNativeDir)\ReactCommon\jsitooling\react\runtime\JSRuntimeFactory.h"/>
|
|
92
|
+
<CIInclude Include="$(ReactNativeDir)\ReactCommon\jsitooling\react\runtime\JSRuntimeFactory.h" />
|
|
93
93
|
<ClInclude Include="..\stubs\sys\mman.h" />
|
|
94
94
|
<ClInclude Include="..\stubs\sys\time.h" />
|
|
95
95
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\cxxreact\CxxModule.h" />
|
|
@@ -116,11 +116,12 @@
|
|
|
116
116
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\InspectorInterfaces.h" />
|
|
117
117
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\RuntimeSamplingProfile.h" />
|
|
118
118
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\InstanceTracingProfile.h" />
|
|
119
|
-
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\
|
|
119
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\EventLoopReporter.h" />
|
|
120
120
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\RuntimeSamplingProfileTraceEventSerializer.h" />
|
|
121
121
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\PerformanceTracer.h" />
|
|
122
122
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\ProfileTreeNode.h" />
|
|
123
123
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\TraceEventProfile.h" />
|
|
124
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\NetworkReporter.h" />
|
|
124
125
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\logger\react_native_log.h" />
|
|
125
126
|
<ClInclude Include="$(YogaDir)\yoga\YGEnums.h" />
|
|
126
127
|
<ClInclude Include="$(YogaDir)\yoga\YGMacros.h" />
|
|
@@ -144,7 +145,7 @@
|
|
|
144
145
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsiexecutor\jsireact\JSINativeModules.cpp" />
|
|
145
146
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\InspectorInterfaces.cpp" />
|
|
146
147
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\InspectorFlags.cpp" />
|
|
147
|
-
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\
|
|
148
|
+
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\EventLoopReporter.cpp" />
|
|
148
149
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\RuntimeSamplingProfileTraceEventSerializer.cpp" />
|
|
149
150
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\PerformanceTracer.cpp" />
|
|
150
151
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsitooling\react\runtime\JSRuntimeFactory.cpp"/>
|
|
@@ -182,6 +183,7 @@
|
|
|
182
183
|
<CLCompile Include="$(ReactNativeDir)\ReactCommon\react\performance\timeline\PerformanceEntryCircularBuffer.cpp" />
|
|
183
184
|
<CLCompile Include="$(ReactNativeDir)\ReactCommon\react\performance\timeline\PerformanceObserver.cpp" />
|
|
184
185
|
<CLCompile Include="$(ReactNativeDir)\ReactCommon\react\performance\timeline\PerformanceEntryKeyedBuffer.cpp" />
|
|
186
|
+
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\network\NetworkReporter.cpp" />
|
|
185
187
|
<ClCompile Include="$(YogaDir)\yoga\event\event.cpp" />
|
|
186
188
|
<ClCompile Include="pch.cpp">
|
|
187
189
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
@@ -194,10 +196,12 @@
|
|
|
194
196
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Function.h" />
|
|
195
197
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Base.h" />
|
|
196
198
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Convert.h" />
|
|
199
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\LongLivedObject.h" />
|
|
197
200
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboCxxModule.h" />
|
|
198
201
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModule.h" />
|
|
199
202
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleBinding.h" />
|
|
200
203
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleUtils.h" />
|
|
204
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleWithJSIBindings.h" />
|
|
201
205
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\runtimescheduler\RuntimeScheduler_Legacy.h" />
|
|
202
206
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\runtimescheduler\RuntimeScheduler_Modern.h" />
|
|
203
207
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\PropsParserContext.h" />
|
|
@@ -215,6 +219,7 @@
|
|
|
215
219
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModule.cpp" />
|
|
216
220
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleBinding.cpp" />
|
|
217
221
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleUtils.cpp" />
|
|
222
|
+
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleWithJSIBindings.cpp" />
|
|
218
223
|
<CLCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\samples\ReactCommon\NativeSampleTurboCxxModuleSpecJSI.cpp" />
|
|
219
224
|
<CLCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\samples\ReactCommon\SampleTurboCxxModule.cpp" />
|
|
220
225
|
</ItemGroup>
|
|
@@ -289,4 +294,4 @@
|
|
|
289
294
|
<Copy DestinationFiles="@(NodeApiJsiFiles->'$(ReactNativeDir)\ReactCommon\jsi\%(RecursiveDir)%(Filename)%(Extension)')" SourceFiles="@(NodeApiJsiFiles)" />
|
|
290
295
|
<Copy DestinationFiles="@(TemporaryReactCommonPatchFiles->'$(ReactNativeDir)\ReactCommon\%(RecursiveDir)%(Filename)%(Extension)')" SourceFiles="@(TemporaryReactCommonPatchFiles)" />
|
|
291
296
|
</Target>
|
|
292
|
-
</Project>
|
|
297
|
+
</Project>
|
|
@@ -156,6 +156,9 @@
|
|
|
156
156
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleUtils.cpp">
|
|
157
157
|
<Filter>turbomodule\core</Filter>
|
|
158
158
|
</ClCompile>
|
|
159
|
+
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleWithJSIBindings.cpp">
|
|
160
|
+
<Filter>turbomodule\core</Filter>
|
|
161
|
+
</ClCompile>
|
|
159
162
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\bridging\LongLivedObject.cpp">
|
|
160
163
|
<Filter>turbomodule\core</Filter>
|
|
161
164
|
</ClCompile>
|
|
@@ -308,6 +311,9 @@
|
|
|
308
311
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleUtils.h">
|
|
309
312
|
<Filter>turbomodule\core</Filter>
|
|
310
313
|
</ClInclude>
|
|
314
|
+
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleWithJSIBindings.h">
|
|
315
|
+
<Filter>turbomodule\core</Filter>
|
|
316
|
+
</ClInclude>
|
|
311
317
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\LongLivedObject.h">
|
|
312
318
|
<Filter>turbomodule\core</Filter>
|
|
313
319
|
</ClInclude>
|