react-native-windows 0.68.3 → 0.69.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.
Files changed (378) hide show
  1. package/.flowconfig +1 -3
  2. package/Chakra/ChakraHelpers.cpp +0 -1
  3. package/Directory.Build.props +3 -0
  4. package/Directory.Build.targets +1 -1
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
  6. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
  8. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
  9. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  10. package/Libraries/Alert/Alert.windows.js +2 -2
  11. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  12. package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
  13. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  14. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  15. package/Libraries/Animated/animations/TimingAnimation.js +6 -11
  16. package/Libraries/Animated/createAnimatedComponent.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
  18. package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
  19. package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
  20. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  21. package/Libraries/AppState/AppState.js +1 -1
  22. package/Libraries/Blob/URL.js +7 -1
  23. package/Libraries/Components/Button.js +3 -0
  24. package/Libraries/Components/Button.windows.js +4 -0
  25. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
  26. package/Libraries/Components/Pressable/Pressable.js +3 -3
  27. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  28. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
  29. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
  30. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  31. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
  32. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
  33. package/Libraries/Components/Slider/Slider.js +0 -2
  34. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
  35. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  36. package/Libraries/Components/Switch/Switch.js +11 -1
  37. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
  38. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
  39. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
  40. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  41. package/Libraries/Components/TextInput/TextInput.js +1 -8
  42. package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
  43. package/Libraries/Components/TextInput/TextInputState.js +10 -2
  44. package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
  45. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  46. package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
  47. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
  48. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
  49. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
  50. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
  51. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  52. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
  53. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
  54. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  55. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  56. package/Libraries/Components/View/View.windows.js +33 -1
  57. package/Libraries/Components/View/ViewNativeComponent.js +68 -8
  58. package/Libraries/Components/View/ViewPropTypes.js +36 -4
  59. package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
  60. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  61. package/Libraries/Core/ExceptionsManager.js +1 -1
  62. package/Libraries/Core/RawEventEmitter.js +38 -0
  63. package/Libraries/Core/ReactNativeVersion.js +2 -2
  64. package/Libraries/Core/polyfillPromise.js +32 -0
  65. package/Libraries/Core/setUpReactDevTools.js +3 -2
  66. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  67. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  68. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
  69. package/Libraries/Events/CustomEvent.js +32 -0
  70. package/Libraries/Events/EventPolyfill.js +239 -0
  71. package/Libraries/Image/Image.android.js +0 -6
  72. package/Libraries/Image/Image.ios.js +0 -6
  73. package/Libraries/Image/Image.windows.js +2 -8
  74. package/Libraries/Image/ImageViewNativeComponent.js +18 -3
  75. package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
  76. package/Libraries/Inspector/Inspector.js +2 -4
  77. package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
  78. package/Libraries/Interaction/InteractionManager.js +1 -12
  79. package/Libraries/Interaction/TaskQueue.js +5 -4
  80. package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
  81. package/Libraries/Linking/Linking.js +1 -1
  82. package/Libraries/Lists/FlatList.js +27 -6
  83. package/Libraries/Lists/VirtualizedList.js +71 -55
  84. package/Libraries/Lists/VirtualizedListContext.js +7 -3
  85. package/Libraries/Lists/VirtualizedSectionList.js +2 -2
  86. package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
  87. package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
  88. package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
  89. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
  90. package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
  91. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
  92. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  93. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  94. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  95. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  96. package/Libraries/LogBox/LogBox.js +2 -21
  97. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
  98. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
  99. package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
  101. package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
  102. package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
  103. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
  104. package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
  105. package/Libraries/NativeComponent/ViewConfig.js +4 -4
  106. package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
  107. package/Libraries/Network/FormData.js +7 -1
  108. package/Libraries/Pressability/Pressability.js +115 -46
  109. package/Libraries/Pressability/Pressability.windows.js +190 -74
  110. package/Libraries/Pressability/PressabilityDebug.js +5 -9
  111. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  112. package/Libraries/ReactNative/AppContainer.js +1 -1
  113. package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
  114. package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
  115. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
  116. package/Libraries/ReactNative/UIManager.js +2 -3
  117. package/Libraries/ReactNative/renderApplication.js +4 -0
  118. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
  119. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
  120. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
  121. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
  123. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
  124. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
  125. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  126. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
  127. package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
  128. package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
  129. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  130. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  131. package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
  132. package/Libraries/StyleSheet/processTransform.windows.js +272 -0
  133. package/Libraries/Text/Text.js +13 -7
  134. package/Libraries/Text/Text.windows.js +16 -7
  135. package/Libraries/Text/TextNativeComponent.js +2 -0
  136. package/Libraries/Text/TextProps.js +10 -0
  137. package/Libraries/Types/CoreEventTypes.js +13 -1
  138. package/Libraries/Types/CoreEventTypes.windows.js +26 -1
  139. package/Libraries/Utilities/Appearance.js +0 -8
  140. package/Libraries/Utilities/HMRClient.js +1 -1
  141. package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
  142. package/Libraries/Utilities/codegenNativeComponent.js +17 -6
  143. package/Libraries/Utilities/stringifySafe.js +4 -1
  144. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
  145. package/Libraries/WebSocket/WebSocket.js +1 -1
  146. package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
  147. package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
  148. package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
  149. package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
  150. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
  151. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
  152. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
  153. package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
  154. package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
  155. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
  156. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  157. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
  158. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
  159. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
  160. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
  161. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
  162. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
  163. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
  164. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
  165. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
  166. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
  167. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
  168. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
  169. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
  170. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
  171. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
  172. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
  173. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
  174. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
  175. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
  176. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
  177. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
  178. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
  179. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
  180. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
  181. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
  182. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
  183. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
  184. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
  185. package/Microsoft.ReactNative/IViewManager.idl +3 -3
  186. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
  187. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
  188. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
  189. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
  190. package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
  191. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
  192. package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
  193. package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
  194. package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
  195. package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
  196. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +14 -1
  197. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  198. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
  199. package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
  200. package/Microsoft.ReactNative/RedBox.cpp +3 -2
  201. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
  202. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
  203. package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
  204. package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
  205. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
  206. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
  207. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  208. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
  209. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
  210. package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
  211. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  212. package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
  213. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
  214. package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
  215. package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
  216. package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
  217. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
  218. package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
  219. package/Microsoft.ReactNative/XamlView.h +8 -3
  220. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
  221. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
  222. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
  223. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
  224. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -1
  225. package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
  226. package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
  227. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
  228. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
  229. package/Microsoft.ReactNative.Cxx/NativeModules.h +1 -1
  230. package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
  231. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
  232. package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
  233. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
  234. package/Mso/activeObject/activeObject.h +2 -2
  235. package/Mso/compilerAdapters/cppMacros.h +3 -5
  236. package/Mso/errorCode/errorProvider.h +2 -2
  237. package/Mso/errorCode/maybe.h +4 -4
  238. package/Mso/functional/functor.h +6 -6
  239. package/Mso/functional/functorRef.h +2 -2
  240. package/Mso/future/details/executor.h +2 -2
  241. package/Mso/future/details/futureFuncInl.h +4 -4
  242. package/Mso/future/details/ifuture.h +3 -3
  243. package/Mso/future/details/maybeInvoker.h +6 -6
  244. package/Mso/future/details/promiseGroupInl.h +4 -4
  245. package/Mso/future/details/promiseInl.h +4 -4
  246. package/Mso/future/details/resultTraits.h +4 -4
  247. package/Mso/future/details/whenAllInl.h +1 -1
  248. package/Mso/future/future.h +13 -13
  249. package/Mso/guid/msoGuidDetails.h +1 -1
  250. package/Mso/memoryApi/memoryApi.h +13 -7
  251. package/Mso/motifCpp/gTestAdapter.h +1 -1
  252. package/Mso/motifCpp/testInfo.h +7 -9
  253. package/Mso/object/make.h +8 -8
  254. package/Mso/object/objectRefCount.h +3 -5
  255. package/Mso/object/objectWithWeakRef.h +10 -14
  256. package/Mso/object/queryCast.h +4 -4
  257. package/Mso/object/refCountedObject.h +4 -4
  258. package/Mso/object/unknownObject.h +7 -7
  259. package/Mso/platformAdapters/windowsFirst.h +1 -1
  260. package/Mso/smartPtr/cntPtr.h +8 -8
  261. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
  262. package/Mso/src/future/futureImpl.h +1 -1
  263. package/Mso/src/memoryApi/memoryApi.cpp +4 -4
  264. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  265. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
  266. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
  267. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  268. package/PropertySheets/React.Cpp.props +13 -0
  269. package/PropertySheets/WinUI.props +3 -6
  270. package/ReactCommon/ReactCommon.vcxproj +2 -4
  271. package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
  272. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
  273. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
  274. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
  275. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
  276. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
  277. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
  278. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
  279. package/ReactCommon/Yoga.cpp +1 -1
  280. package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
  281. package/Scripts/OfficeReact.Win32.nuspec +1 -3
  282. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
  283. package/Scripts/copyRNLibraries.js +8 -8
  284. package/Scripts/just.js +1 -1
  285. package/Scripts/rnw-dependencies.ps1 +41 -10
  286. package/Scripts/run-desktop-integration-tests.js +6 -6
  287. package/Shared/AbiSafe.h +3 -3
  288. package/Shared/BaseScriptStoreImpl.cpp +1 -1
  289. package/Shared/CppRuntimeOptions.h +50 -0
  290. package/Shared/DevSupportManager.cpp +32 -36
  291. package/Shared/DevSupportManager.h +1 -2
  292. package/Shared/HermesRuntimeHolder.cpp +23 -14
  293. package/Shared/HermesRuntimeHolder.h +8 -2
  294. package/Shared/IDevSupportManager.h +1 -2
  295. package/Shared/InspectorPackagerConnection.cpp +7 -5
  296. package/Shared/InspectorPackagerConnection.h +2 -2
  297. package/Shared/JSI/ChakraApi.cpp +0 -1
  298. package/Shared/JSI/ChakraRuntime.cpp +1 -2
  299. package/Shared/JSI/RuntimeHolder.h +2 -0
  300. package/Shared/Modules/HttpModule.cpp +1 -1
  301. package/Shared/Modules/HttpModule.h +2 -2
  302. package/Shared/Modules/WebSocketModule.cpp +1 -1
  303. package/Shared/Modules/WebSocketModule.h +8 -5
  304. package/Shared/{IHttpResource.h → Networking/IHttpResource.h} +4 -4
  305. package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +2 -2
  306. package/Shared/Networking/OriginPolicy.h +15 -0
  307. package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
  308. package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
  309. package/Shared/{WinRTHttpResource.cpp → Networking/WinRTHttpResource.cpp} +129 -99
  310. package/Shared/{WinRTHttpResource.h → Networking/WinRTHttpResource.h} +8 -12
  311. package/Shared/Networking/WinRTTypes.h +30 -0
  312. package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +2 -2
  313. package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
  314. package/Shared/OInstance.cpp +5 -5
  315. package/Shared/RuntimeOptions.cpp +93 -15
  316. package/Shared/RuntimeOptions.h +22 -9
  317. package/Shared/Shared.vcxitems +122 -7
  318. package/Shared/Shared.vcxitems.filters +40 -21
  319. package/Shared/Threading/BatchingQueueThread.cpp +1 -1
  320. package/Shared/tracing/fbsystrace.h +2 -2
  321. package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
  322. package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
  323. package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
  324. package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
  325. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  326. package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
  327. package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
  328. package/codegen/react/components/rnwcore/Props.cpp +0 -13
  329. package/codegen/react/components/rnwcore/Props.h +0 -16
  330. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  331. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
  332. package/include/Shared/cdebug.h +9 -9
  333. package/index.js +30 -25
  334. package/index.windows.js +30 -25
  335. package/jest/preprocessor.js +24 -107
  336. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  337. package/metro.config.js +3 -70
  338. package/package.json +29 -28
  339. package/react-native.config.js +40 -6
  340. package/rntypes/index.d.ts +19 -7
  341. package/stubs/glog/logging.h +1 -1
  342. package/template/cpp-app/src/App.h +0 -4
  343. package/template/cs-app/src/App.xaml.cs +0 -5
  344. package/template/cs-app/src/MainPage.xaml.cs +1 -10
  345. package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
  346. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
  347. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
  348. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
  349. package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
  350. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
  351. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
  352. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
  353. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
  354. package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
  355. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
  356. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
  357. package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
  358. package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
  359. package/template/metro.devMode.config.js +2 -51
  360. package/typings-index.js +5 -1
  361. package/typings-index.js.map +1 -1
  362. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  363. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  364. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  365. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
  366. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  367. package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
  368. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  369. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  370. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  371. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  372. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  373. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  374. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  375. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  376. package/PropertySheets/CppEnablePackageReferences.props +0 -13
  377. package/Shared/cdebug.cpp +0 -6
  378. package/include/Shared/ViewManager.h +0 -34
@@ -52,11 +52,20 @@ const Text: React.AbstractComponent<
52
52
 
53
53
  const [isHighlighted, setHighlighted] = useState(false);
54
54
 
55
+ const _disabled =
56
+ restProps.disabled != null
57
+ ? restProps.disabled
58
+ : props.accessibilityState?.disabled;
59
+ const _accessibilityState =
60
+ _disabled !== props.accessibilityState?.disabled
61
+ ? {...props.accessibilityState, disabled: _disabled}
62
+ : props.accessibilityState;
63
+
55
64
  const isPressable =
56
65
  (onPress != null ||
57
66
  onLongPress != null ||
58
67
  onStartShouldSetResponder != null) &&
59
- restProps.disabled !== true;
68
+ _disabled !== true;
60
69
 
61
70
  const initialized = useLazyInitialization(isPressable);
62
71
  const config = useMemo(
@@ -124,6 +133,7 @@ const Text: React.AbstractComponent<
124
133
  onResponderTerminate(event);
125
134
  }
126
135
  },
136
+ onClick: eventHandlers.onClick,
127
137
  onResponderTerminationRequest:
128
138
  eventHandlers.onResponderTerminationRequest,
129
139
  onStartShouldSetResponder: eventHandlers.onStartShouldSetResponder,
@@ -167,6 +177,11 @@ const Text: React.AbstractComponent<
167
177
  <NativeVirtualText
168
178
  {...restProps}
169
179
  {...eventHandlersForText}
180
+ disabled={_disabled}
181
+ accessible={accessible !== false}
182
+ accessibilityState={_accessibilityState}
183
+ allowFontScaling={allowFontScaling !== false}
184
+ ellipsizeMode={ellipsizeMode ?? 'tail'}
170
185
  isHighlighted={isHighlighted}
171
186
  isPressable={isPressable}
172
187
  numberOfLines={numberOfLines}
@@ -253,12 +268,6 @@ const Text: React.AbstractComponent<
253
268
 
254
269
  Text.displayName = 'Text';
255
270
 
256
- /**
257
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
258
- * releases. This is deprecated and will be removed in the future.
259
- */
260
- Text.propTypes = require('deprecated-react-native-prop-types').TextPropTypes;
261
-
262
271
  /**
263
272
  * Returns false until the first time `newValue` is true, after which this will
264
273
  * always return true. This is necessary to lazily initialize `Pressability` so
@@ -14,11 +14,13 @@ import {type HostComponent} from '../Renderer/shims/ReactNativeTypes';
14
14
  import createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';
15
15
  import {type ProcessedColorValue} from '../StyleSheet/processColor';
16
16
  import {type TextProps} from './TextProps';
17
+ import {type PressEvent} from '../Types/CoreEventTypes';
17
18
 
18
19
  type NativeTextProps = $ReadOnly<{
19
20
  ...TextProps,
20
21
  isHighlighted?: ?boolean,
21
22
  selectionColor?: ?ProcessedColorValue,
23
+ onClick?: ?(event: PressEvent) => mixed,
22
24
  // This is only needed for platforms that optimize text hit testing, e.g.,
23
25
  // react-native-windows. It can be used to only hit test virtual text spans
24
26
  // that have pressable events attached to them.
@@ -12,6 +12,7 @@
12
12
 
13
13
  import type {
14
14
  LayoutEvent,
15
+ PointerEvent,
15
16
  PressEvent,
16
17
  TextLayoutEvent,
17
18
  } from '../Types/CoreEventTypes';
@@ -31,10 +32,18 @@ export type PressRetentionOffset = $ReadOnly<{|
31
32
  right: number,
32
33
  |}>;
33
34
 
35
+ type PointerEventProps = $ReadOnly<{|
36
+ onPointerEnter?: (event: PointerEvent) => void,
37
+ onPointerLeave?: (event: PointerEvent) => void,
38
+ onPointerMove?: (event: PointerEvent) => void,
39
+ |}>;
40
+
34
41
  /**
35
42
  * @see https://reactnative.dev/docs/text#reference
36
43
  */
37
44
  export type TextProps = $ReadOnly<{|
45
+ ...PointerEventProps,
46
+
38
47
  /**
39
48
  * Indicates whether the view is an accessibility element.
40
49
  *
@@ -44,6 +53,7 @@ export type TextProps = $ReadOnly<{|
44
53
  accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,
45
54
  onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,
46
55
  accessibilityHint?: ?Stringish,
56
+ accessibilityLanguage?: ?Stringish,
47
57
  accessibilityLabel?: ?Stringish,
48
58
  accessibilityRole?: ?AccessibilityRole,
49
59
  accessibilityState?: ?AccessibilityState,
@@ -11,7 +11,7 @@
11
11
  import * as React from 'react';
12
12
  import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
13
13
 
14
- export type SyntheticEvent<T> = $ReadOnly<{|
14
+ export type SyntheticEvent<+T> = $ReadOnly<{|
15
15
  bubbles: ?boolean,
16
16
  cancelable: ?boolean,
17
17
  currentTarget: number | React.ElementRef<HostComponent<mixed>>,
@@ -83,6 +83,18 @@ export type TextLayoutEvent = SyntheticEvent<
83
83
  |}>,
84
84
  >;
85
85
 
86
+ export type PointerEvent = ResponderSyntheticEvent<
87
+ $ReadOnly<{|
88
+ pointerId: number,
89
+ pressure: number,
90
+ pointerType: string,
91
+ clientX: number,
92
+ clientY: number,
93
+ target: ?number,
94
+ timestamp: number,
95
+ |}>,
96
+ >;
97
+
86
98
  export type PressEvent = ResponderSyntheticEvent<
87
99
  $ReadOnly<{|
88
100
  changedTouches: $ReadOnlyArray<$PropertyType<PressEvent, 'nativeEvent'>>,
@@ -11,7 +11,7 @@
11
11
  import * as React from 'react';
12
12
  import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
13
13
 
14
- export type SyntheticEvent<T> = $ReadOnly<{|
14
+ export type SyntheticEvent<+T> = $ReadOnly<{|
15
15
  bubbles: ?boolean,
16
16
  cancelable: ?boolean,
17
17
  currentTarget: number | React.ElementRef<HostComponent<mixed>>,
@@ -83,6 +83,29 @@ export type TextLayoutEvent = SyntheticEvent<
83
83
  |}>,
84
84
  >;
85
85
 
86
+ export type PointerEvent = ResponderSyntheticEvent<
87
+ $ReadOnly<{|
88
+ pointerId: number,
89
+ pressure: number,
90
+ pointerType: string,
91
+ clientX: number,
92
+ clientY: number,
93
+ target: ?number,
94
+ timestamp: number,
95
+ // [Windows
96
+ isLeftButton: boolean,
97
+ isRightButton: boolean,
98
+ isMiddleButton: boolean,
99
+ isBarrelButtonPressed: boolean,
100
+ isHorizontalScrollWheel: boolean,
101
+ isEraser: boolean,
102
+ shiftKey: boolean,
103
+ ctrlKey: boolean,
104
+ altKey: boolean,
105
+ // Windows]
106
+ |}>,
107
+ >;
108
+
86
109
  export type PressEvent = ResponderSyntheticEvent<
87
110
  $ReadOnly<{|
88
111
  altKey: ?boolean, // TODO(macOS)
@@ -156,6 +179,8 @@ export type MouseEvent = SyntheticEvent<
156
179
  $ReadOnly<{|
157
180
  target: number,
158
181
  identifier: number,
182
+ clientX: number,
183
+ clientY: number,
159
184
  pageX: number,
160
185
  pageY: number,
161
186
  locationX: number,
@@ -91,12 +91,4 @@ module.exports = {
91
91
  addChangeListener(listener: AppearanceListener): EventSubscription {
92
92
  return eventEmitter.addListener('change', listener);
93
93
  },
94
-
95
- /**
96
- * @deprecated Use `remove` on the EventSubscription from `addEventListener`.
97
- */
98
- removeChangeListener(listener: AppearanceListener): void {
99
- // NOTE: This will report a deprecation notice via `console.error`.
100
- eventEmitter.removeListener('change', listener);
101
- },
102
94
  };
@@ -292,7 +292,7 @@ function registerBundleEntryPoints(client) {
292
292
 
293
293
  function flushEarlyLogs(client) {
294
294
  try {
295
- pendingLogs.forEach(([level: LogLevel, data: Array<mixed>]) => {
295
+ pendingLogs.forEach(([level, data]) => {
296
296
  HMRClient.log(level, data);
297
297
  });
298
298
  } finally {
@@ -17,6 +17,7 @@ const ShallowRenderer = require('react-shallow-renderer');
17
17
  /* $FlowFixMe[not-a-function] (>=0.125.1 site=react_native_fb) This comment
18
18
  * suppresses an error found when Flow v0.125.1 was deployed. To see the error,
19
19
  * delete this comment and run Flow. */
20
+ // $FlowFixMe[invalid-constructor]
20
21
  const shallowRenderer = new ShallowRenderer();
21
22
 
22
23
  import type {ReactTestRenderer as ReactTestRendererType} from 'react-test-renderer';
@@ -24,21 +24,36 @@ type Options = $ReadOnly<{|
24
24
 
25
25
  export type NativeComponentType<T> = HostComponent<T>;
26
26
 
27
+ // If this function runs then that means the view configs were not
28
+ // generated at build time using `GenerateViewConfigJs.js`. Thus
29
+ // we need to `requireNativeComponent` to get the view configs from view managers.
30
+ // `requireNativeComponent` is not available in Bridgeless mode.
31
+ // e.g. This function runs at runtime if `codegenNativeComponent` was not called
32
+ // from a file suffixed with NativeComponent.js.
27
33
  function codegenNativeComponent<Props>(
28
34
  componentName: string,
29
35
  options?: Options,
30
36
  ): NativeComponentType<Props> {
37
+ const errorMessage =
38
+ "Native Component '" +
39
+ componentName +
40
+ "' that calls codegenNativeComponent was not code generated at build time. Please check its definition.";
41
+ if (global.RN$Bridgeless === true) {
42
+ console.error(errorMessage);
43
+ } else {
44
+ console.warn(errorMessage);
45
+ }
31
46
  let componentNameInUse =
32
47
  options && options.paperComponentName != null
33
48
  ? options.paperComponentName
34
49
  : componentName;
35
50
 
36
51
  if (options != null && options.paperComponentNameDeprecated != null) {
37
- if (UIManager.getViewManagerConfig(componentName)) {
52
+ if (UIManager.hasViewManagerConfig(componentName)) {
38
53
  componentNameInUse = componentName;
39
54
  } else if (
40
55
  options.paperComponentNameDeprecated != null &&
41
- UIManager.getViewManagerConfig(options.paperComponentNameDeprecated)
56
+ UIManager.hasViewManagerConfig(options.paperComponentNameDeprecated)
42
57
  ) {
43
58
  componentNameInUse = options.paperComponentNameDeprecated;
44
59
  } else {
@@ -50,10 +65,6 @@ function codegenNativeComponent<Props>(
50
65
  }
51
66
  }
52
67
 
53
- // If this function is run at runtime then that means the view configs were not
54
- // generated with the view config babel plugin, so we need to require the native component.
55
- //
56
- // This will be useful during migration, but eventually this will error.
57
68
  return (requireNativeComponent<Props>(
58
69
  componentNameInUse,
59
70
  ): HostComponent<Props>);
@@ -43,7 +43,10 @@ export function createStringifySafeWithLimits(limits: {|
43
43
  return value;
44
44
  }
45
45
 
46
- let retval = value;
46
+ let retval:
47
+ | string
48
+ | {+[string]: mixed}
49
+ | $TEMPORARY$object<{'...(truncated keys)...': number}> = value;
47
50
  if (Array.isArray(value)) {
48
51
  if (stack.length >= maxDepth) {
49
52
  retval = `[ ... array with ${value.length} values ... ]`;
@@ -8,7 +8,7 @@
8
8
  * @flow
9
9
  */
10
10
 
11
- import ReactNativeViewViewConfig from '../Components/View/ReactNativeViewViewConfig';
11
+ import PlatformBaseViewConfig from '../NativeComponent/PlatformBaseViewConfig';
12
12
  import {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';
13
13
 
14
14
  const IGNORED_KEYS = ['transform', 'hitSlop'];
@@ -62,7 +62,7 @@ export default function verifyComponentAttributeEquivalence(
62
62
 
63
63
  // Return the different key-value pairs of the right object, by iterating through the keys in the left object
64
64
  // Note it won't return a difference where a key is missing in the left but exists the right.
65
- export function lefthandObjectDiff(leftObj: Object, rightObj: Object): Object {
65
+ function lefthandObjectDiff(leftObj: Object, rightObj: Object): Object {
66
66
  const differentKeys = {};
67
67
 
68
68
  function compare(leftItem: any, rightItem: any, key: string) {
@@ -109,7 +109,7 @@ export function getConfigWithoutViewProps(
109
109
  }
110
110
 
111
111
  return Object.keys(viewConfig[propName])
112
- .filter(prop => !ReactNativeViewViewConfig[propName][prop])
112
+ .filter(prop => !PlatformBaseViewConfig[propName][prop])
113
113
  .reduce((obj, prop) => {
114
114
  obj[prop] = viewConfig[propName][prop];
115
115
  return obj;
@@ -230,7 +230,7 @@ class WebSocket extends (EventTarget(...WEBSOCKET_EVENTS): any) {
230
230
  if (ev.id !== this._socketId) {
231
231
  return;
232
232
  }
233
- let data = ev.data;
233
+ let data: Blob | BlobData | ArrayBuffer | string = ev.data;
234
234
  switch (ev.type) {
235
235
  case 'binary':
236
236
  data = base64.toByteArray(ev.data).buffer;
@@ -13,7 +13,7 @@
13
13
  import type EventEmitter from './EventEmitter';
14
14
  import _EventSubscription from './_EventSubscription';
15
15
  import type EventSubscriptionVendor from './_EventSubscriptionVendor';
16
- import {type EventSubscription} from './EventSubscription';
16
+ import type {EventSubscription} from './EventSubscription';
17
17
 
18
18
  /**
19
19
  * EmitterSubscription represents a subscription with listener and context data.
@@ -12,7 +12,7 @@
12
12
  const invariant = require('invariant');
13
13
 
14
14
  import EmitterSubscription from './_EmitterSubscription';
15
- import {type EventSubscription} from './EventSubscription';
15
+ import type {EventSubscription} from './EventSubscription';
16
16
  import EventSubscriptionVendor from './_EventSubscriptionVendor';
17
17
 
18
18
  const sparseFilterPredicate = () => true;
@@ -10,7 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import {type EventSubscription} from './EventSubscription';
13
+ import type {EventSubscription} from './EventSubscription';
14
14
  import type EventSubscriptionVendor from './_EventSubscriptionVendor';
15
15
 
16
16
  /**
@@ -140,9 +140,9 @@ bool DynamicReader::GetBoolean() noexcept {
140
140
  }
141
141
 
142
142
  int64_t DynamicReader::GetInt64() noexcept {
143
- return (m_current->type() == folly::dynamic::Type::INT64)
144
- ? m_current->getInt()
145
- : (m_current->type() == folly::dynamic::Type::DOUBLE) ? static_cast<int64_t>(m_current->getDouble()) : 0;
143
+ return (m_current->type() == folly::dynamic::Type::INT64) ? m_current->getInt()
144
+ : (m_current->type() == folly::dynamic::Type::DOUBLE) ? static_cast<int64_t>(m_current->getDouble())
145
+ : 0;
146
146
  }
147
147
 
148
148
  double DynamicReader::GetDouble() noexcept {
@@ -39,6 +39,7 @@ struct IComponentView {
39
39
  virtual void finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept = 0;
40
40
  virtual void prepareForRecycle() noexcept = 0;
41
41
  virtual facebook::react::SharedProps props() noexcept = 0;
42
+ virtual void handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept = 0;
42
43
  };
43
44
 
44
45
  } // namespace Microsoft::ReactNative
@@ -13,18 +13,29 @@
13
13
  #include <react/components/rnwcore/ShadowNodes.h>
14
14
  #include <react/renderer/components/image/ImageShadowNode.h>
15
15
  #include <react/renderer/components/root/RootShadowNode.h>
16
+ #ifndef CORE_ABI
17
+ #include <react/renderer/components/slider/SliderShadowNode.h>
18
+ #endif // CORE_ABI
16
19
  #include <react/renderer/components/text/ParagraphShadowNode.h>
17
20
  #include <react/renderer/components/text/RawTextShadowNode.h>
18
21
  #include <react/renderer/components/text/TextShadowNode.h>
19
22
  #include <react/renderer/components/textinput/iostextinput/TextInputShadowNode.h>
20
23
  #include <react/renderer/components/view/ViewShadowNode.h>
21
24
 
25
+ #ifndef CORE_ABI
26
+ #include "TextInput/WindowsTextInputShadowNode.h"
27
+
22
28
  #include "ActivityIndicatorComponentView.h"
23
29
  #include "ImageComponentView.h"
24
30
  #include "ParagraphComponentView.h"
25
31
  #include "ScrollViewComponentView.h"
32
+ #include "SliderComponentView.h"
33
+ #include "SwitchComponentView.h"
26
34
  #include "TextComponentView.h"
35
+ #include "TextInput/WindowsTextInputComponentView.h"
27
36
  #include "ViewComponentView.h"
37
+ #include "XamlView.h"
38
+ #endif // CORE_ABI
28
39
 
29
40
  namespace Microsoft::ReactNative {
30
41
 
@@ -37,6 +48,7 @@ ComponentViewDescriptor const &ComponentViewRegistry::dequeueComponentViewWithCo
37
48
  facebook::react::Tag tag) noexcept {
38
49
  // TODO implement recycled components like core does
39
50
 
51
+ #ifndef CORE_ABI
40
52
  std::shared_ptr<BaseComponentView> view;
41
53
 
42
54
  if (componentHandle == facebook::react::TextShadowNode::Handle()) {
@@ -47,6 +59,12 @@ ComponentViewDescriptor const &ComponentViewRegistry::dequeueComponentViewWithCo
47
59
  view = std::make_shared<ScrollViewComponentView>();
48
60
  } else if (componentHandle == facebook::react::ImageShadowNode::Handle()) {
49
61
  view = std::make_shared<ImageComponentView>(m_context);
62
+ } else if (componentHandle == facebook::react::SliderShadowNode::Handle()) {
63
+ view = std::make_shared<SliderComponentView>(m_context);
64
+ } else if (componentHandle == facebook::react::SwitchShadowNode::Handle()) {
65
+ view = std::make_shared<SwitchComponentView>(m_context);
66
+ } else if (componentHandle == facebook::react::WindowsTextInputShadowNode::Handle()) {
67
+ view = std::make_shared<WindowsTextInputComponentView>();
50
68
  } else if (componentHandle == facebook::react::ActivityIndicatorViewShadowNode::Handle()) {
51
69
  view = std::make_shared<ActivityIndicatorComponentView>();
52
70
  } else {
@@ -60,8 +78,13 @@ ComponentViewDescriptor const &ComponentViewRegistry::dequeueComponentViewWithCo
60
78
  view = std::make_shared<ViewComponentView>();
61
79
  }
62
80
 
63
- view->Element().Tag(winrt::box_value(tag));
81
+ SetTag(view->Element(), tag);
64
82
  auto it = m_registry.insert({tag, ComponentViewDescriptor{view}});
83
+
84
+ #else
85
+ auto it = m_registry.insert({tag, ComponentViewDescriptor{nullptr}});
86
+ #endif // CORE_ABI
87
+
65
88
  return it.first->second;
66
89
  }
67
90
 
@@ -72,6 +95,15 @@ ComponentViewDescriptor const &ComponentViewRegistry::componentViewDescriptorWit
72
95
  return iterator->second;
73
96
  }
74
97
 
98
+ std::shared_ptr<IComponentView> ComponentViewRegistry::findComponentViewWithTag(
99
+ facebook::react::Tag tag) const noexcept {
100
+ auto iterator = m_registry.find(tag);
101
+ if (iterator == m_registry.end()) {
102
+ return nullptr;
103
+ }
104
+ return iterator->second.view;
105
+ }
106
+
75
107
  void ComponentViewRegistry::enqueueComponentViewWithComponentHandle(
76
108
  facebook::react::ComponentHandle componentHandle,
77
109
  facebook::react::Tag tag,
@@ -79,6 +111,8 @@ void ComponentViewRegistry::enqueueComponentViewWithComponentHandle(
79
111
  assert(m_registry.find(tag) != m_registry.end());
80
112
 
81
113
  m_registry.erase(tag);
82
- static_cast<ViewComponentView &>(*componentViewDescriptor.view).Element().Tag(nullptr);
114
+ #ifndef CORE_ABI
115
+ SetTag(static_cast<ViewComponentView &>(*componentViewDescriptor.view).Element(), InvalidTag);
116
+ #endif // CORE_ABI
83
117
  }
84
118
  } // namespace Microsoft::ReactNative
@@ -23,6 +23,7 @@ class ComponentViewRegistry final {
23
23
  facebook::react::ComponentHandle componentHandle,
24
24
  facebook::react::Tag tag) noexcept;
25
25
  ComponentViewDescriptor const &componentViewDescriptorWithTag(facebook::react::Tag tag) const noexcept;
26
+ std::shared_ptr<IComponentView> findComponentViewWithTag(facebook::react::Tag tag) const noexcept;
26
27
  void enqueueComponentViewWithComponentHandle(
27
28
  facebook::react::ComponentHandle componentHandle,
28
29
  facebook::react::Tag tag,
@@ -0,0 +1,19 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include "DWriteHelpers.h"
7
+
8
+ namespace Microsoft::ReactNative {
9
+
10
+ winrt::com_ptr<::IDWriteFactory> DWriteFactory() noexcept {
11
+ static winrt::com_ptr<::IDWriteFactory> s_dwriteFactory;
12
+ if (!s_dwriteFactory) {
13
+ winrt::check_hresult(::DWriteCreateFactory(
14
+ DWRITE_FACTORY_TYPE_SHARED, __uuidof(s_dwriteFactory), reinterpret_cast<::IUnknown **>(s_dwriteFactory.put())));
15
+ }
16
+ return s_dwriteFactory;
17
+ }
18
+
19
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,13 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #pragma once
6
+
7
+ #include <dwrite.h>
8
+
9
+ namespace Microsoft::ReactNative {
10
+
11
+ winrt::com_ptr<::IDWriteFactory> DWriteFactory() noexcept;
12
+
13
+ } // namespace Microsoft::ReactNative