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
@@ -0,0 +1,334 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @flow strict-local
9
+ */
10
+
11
+ import {
12
+ DynamicallyInjectedByGestureHandler,
13
+ ConditionallyIgnoredEventHandlers,
14
+ } from './ViewConfigIgnore';
15
+ import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
16
+ import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
17
+
18
+ const bubblingEventTypes = {
19
+ // Generic Events
20
+ topPress: {
21
+ phasedRegistrationNames: {
22
+ bubbled: 'onPress',
23
+ captured: 'onPressCapture',
24
+ },
25
+ },
26
+ topChange: {
27
+ phasedRegistrationNames: {
28
+ bubbled: 'onChange',
29
+ captured: 'onChangeCapture',
30
+ },
31
+ },
32
+ topFocus: {
33
+ phasedRegistrationNames: {
34
+ bubbled: 'onFocus',
35
+ captured: 'onFocusCapture',
36
+ },
37
+ },
38
+ topBlur: {
39
+ phasedRegistrationNames: {
40
+ bubbled: 'onBlur',
41
+ captured: 'onBlurCapture',
42
+ },
43
+ },
44
+ topSubmitEditing: {
45
+ phasedRegistrationNames: {
46
+ bubbled: 'onSubmitEditing',
47
+ captured: 'onSubmitEditingCapture',
48
+ },
49
+ },
50
+ topEndEditing: {
51
+ phasedRegistrationNames: {
52
+ bubbled: 'onEndEditing',
53
+ captured: 'onEndEditingCapture',
54
+ },
55
+ },
56
+ topKeyPress: {
57
+ phasedRegistrationNames: {
58
+ bubbled: 'onKeyPress',
59
+ captured: 'onKeyPressCapture',
60
+ },
61
+ },
62
+
63
+ // Touch Events
64
+ topTouchStart: {
65
+ phasedRegistrationNames: {
66
+ bubbled: 'onTouchStart',
67
+ captured: 'onTouchStartCapture',
68
+ },
69
+ },
70
+ topTouchMove: {
71
+ phasedRegistrationNames: {
72
+ bubbled: 'onTouchMove',
73
+ captured: 'onTouchMoveCapture',
74
+ },
75
+ },
76
+ topTouchCancel: {
77
+ phasedRegistrationNames: {
78
+ bubbled: 'onTouchCancel',
79
+ captured: 'onTouchCancelCapture',
80
+ },
81
+ },
82
+ topTouchEnd: {
83
+ phasedRegistrationNames: {
84
+ bubbled: 'onTouchEnd',
85
+ captured: 'onTouchEndCapture',
86
+ },
87
+ },
88
+
89
+ // Experimental/Work in Progress Pointer Events (not yet ready for use)
90
+ topPointerCancel: {
91
+ phasedRegistrationNames: {
92
+ captured: 'onPointerCancelCapture',
93
+ bubbled: 'onPointerCancel',
94
+ },
95
+ },
96
+ topPointerDown: {
97
+ phasedRegistrationNames: {
98
+ captured: 'onPointerDownCapture',
99
+ bubbled: 'onPointerDown',
100
+ },
101
+ },
102
+ topPointerMove2: {
103
+ phasedRegistrationNames: {
104
+ captured: 'onPointerMove2Capture',
105
+ bubbled: 'onPointerMove2',
106
+ },
107
+ },
108
+ topPointerUp: {
109
+ phasedRegistrationNames: {
110
+ captured: 'onPointerUpCapture',
111
+ bubbled: 'onPointerUp',
112
+ },
113
+ },
114
+ topPointerEnter2: {
115
+ phasedRegistrationNames: {
116
+ captured: 'onPointerEnter2Capture',
117
+ bubbled: 'onPointerEnter2',
118
+ skipBubbling: true,
119
+ },
120
+ },
121
+ topPointerLeave2: {
122
+ phasedRegistrationNames: {
123
+ captured: 'onPointerLeave2Capture',
124
+ bubbled: 'onPointerLeave2',
125
+ skipBubbling: true,
126
+ },
127
+ },
128
+ };
129
+
130
+ const directEventTypes = {
131
+ topAccessibilityAction: {
132
+ registrationName: 'onAccessibilityAction',
133
+ },
134
+ topAccessibilityTap: {
135
+ registrationName: 'onAccessibilityTap',
136
+ },
137
+ topMagicTap: {
138
+ registrationName: 'onMagicTap',
139
+ },
140
+ topAccessibilityEscape: {
141
+ registrationName: 'onAccessibilityEscape',
142
+ },
143
+ topLayout: {
144
+ registrationName: 'onLayout',
145
+ },
146
+ onGestureHandlerEvent: DynamicallyInjectedByGestureHandler({
147
+ registrationName: 'onGestureHandlerEvent',
148
+ }),
149
+ onGestureHandlerStateChange: DynamicallyInjectedByGestureHandler({
150
+ registrationName: 'onGestureHandlerStateChange',
151
+ }),
152
+ };
153
+
154
+ const validAttributesForNonEventProps = {
155
+ // View Props
156
+ accessible: true,
157
+ accessibilityActions: true,
158
+ accessibilityLabel: true,
159
+ accessibilityHint: true,
160
+ accessibilityLanguage: true,
161
+ accessibilityValue: true,
162
+ accessibilityViewIsModal: true,
163
+ accessibilityElementsHidden: true,
164
+ accessibilityIgnoresInvertColors: true,
165
+ testID: true,
166
+ backgroundColor: {process: require('../StyleSheet/processColor')},
167
+ backfaceVisibility: true,
168
+ opacity: true,
169
+ shadowColor: {process: require('../StyleSheet/processColor')},
170
+ shadowOffset: {diff: require('../Utilities/differ/sizesDiffer')},
171
+ shadowOpacity: true,
172
+ shadowRadius: true,
173
+ needsOffscreenAlphaCompositing: true,
174
+ overflow: true,
175
+ shouldRasterizeIOS: true,
176
+ transform: {diff: require('../Utilities/differ/matricesDiffer')},
177
+ accessibilityRole: true,
178
+ accessibilityState: true,
179
+ nativeID: true,
180
+ pointerEvents: true,
181
+ removeClippedSubviews: true,
182
+ borderRadius: true,
183
+ borderColor: {process: require('../StyleSheet/processColor')},
184
+ borderWidth: true,
185
+ borderStyle: true,
186
+ hitSlop: {diff: require('../Utilities/differ/insetsDiffer')},
187
+ collapsable: true,
188
+
189
+ borderTopWidth: true,
190
+ borderTopColor: {process: require('../StyleSheet/processColor')},
191
+ borderRightWidth: true,
192
+ borderRightColor: {process: require('../StyleSheet/processColor')},
193
+ borderBottomWidth: true,
194
+ borderBottomColor: {process: require('../StyleSheet/processColor')},
195
+ borderLeftWidth: true,
196
+ borderLeftColor: {process: require('../StyleSheet/processColor')},
197
+ borderStartWidth: true,
198
+ borderStartColor: {process: require('../StyleSheet/processColor')},
199
+ borderEndWidth: true,
200
+ borderEndColor: {process: require('../StyleSheet/processColor')},
201
+
202
+ borderTopLeftRadius: true,
203
+ borderTopRightRadius: true,
204
+ borderTopStartRadius: true,
205
+ borderTopEndRadius: true,
206
+ borderBottomLeftRadius: true,
207
+ borderBottomRightRadius: true,
208
+ borderBottomStartRadius: true,
209
+ borderBottomEndRadius: true,
210
+ display: true,
211
+ zIndex: true,
212
+
213
+ // ShadowView properties
214
+ top: true,
215
+ right: true,
216
+ start: true,
217
+ end: true,
218
+ bottom: true,
219
+ left: true,
220
+
221
+ width: true,
222
+ height: true,
223
+
224
+ minWidth: true,
225
+ maxWidth: true,
226
+ minHeight: true,
227
+ maxHeight: true,
228
+
229
+ // Also declared as ViewProps
230
+ // borderTopWidth: true,
231
+ // borderRightWidth: true,
232
+ // borderBottomWidth: true,
233
+ // borderLeftWidth: true,
234
+ // borderStartWidth: true,
235
+ // borderEndWidth: true,
236
+ // borderWidth: true,
237
+
238
+ marginTop: true,
239
+ marginRight: true,
240
+ marginBottom: true,
241
+ marginLeft: true,
242
+ marginStart: true,
243
+ marginEnd: true,
244
+ marginVertical: true,
245
+ marginHorizontal: true,
246
+ margin: true,
247
+
248
+ paddingTop: true,
249
+ paddingRight: true,
250
+ paddingBottom: true,
251
+ paddingLeft: true,
252
+ paddingStart: true,
253
+ paddingEnd: true,
254
+ paddingVertical: true,
255
+ paddingHorizontal: true,
256
+ padding: true,
257
+
258
+ flex: true,
259
+ flexGrow: true,
260
+ flexShrink: true,
261
+ flexBasis: true,
262
+ flexDirection: true,
263
+ flexWrap: true,
264
+ justifyContent: true,
265
+ alignItems: true,
266
+ alignSelf: true,
267
+ alignContent: true,
268
+ position: true,
269
+ aspectRatio: true,
270
+
271
+ // Also declared as ViewProps
272
+ // overflow: true,
273
+ // display: true,
274
+
275
+ direction: true,
276
+
277
+ style: ReactNativeStyleAttributes,
278
+ };
279
+
280
+ // Props for bubbling and direct events
281
+ const validAttributesForEventProps = ConditionallyIgnoredEventHandlers({
282
+ onLayout: true,
283
+ onMagicTap: true,
284
+
285
+ // Accessibility
286
+ onAccessibilityAction: true,
287
+ onAccessibilityEscape: true,
288
+ onAccessibilityTap: true,
289
+
290
+ // PanResponder handlers
291
+ onMoveShouldSetResponder: true,
292
+ onMoveShouldSetResponderCapture: true,
293
+ onStartShouldSetResponder: true,
294
+ onStartShouldSetResponderCapture: true,
295
+ onResponderGrant: true,
296
+ onResponderReject: true,
297
+ onResponderStart: true,
298
+ onResponderEnd: true,
299
+ onResponderRelease: true,
300
+ onResponderMove: true,
301
+ onResponderTerminate: true,
302
+ onResponderTerminationRequest: true,
303
+ onShouldBlockNativeResponder: true,
304
+
305
+ // Touch events
306
+ onTouchStart: true,
307
+ onTouchMove: true,
308
+ onTouchEnd: true,
309
+ onTouchCancel: true,
310
+
311
+ // Pointer events
312
+ onPointerUp: true,
313
+ onPointerDown: true,
314
+ onPointerCancel: true,
315
+ onPointerEnter2: true,
316
+ onPointerMove2: true,
317
+ onPointerLeave2: true,
318
+ });
319
+
320
+ /**
321
+ * On iOS, view managers define all of a component's props.
322
+ * All view managers extend RCTViewManager, and RCTViewManager declares these props.
323
+ */
324
+ const PlatformBaseViewConfigWindows: PartialViewConfigWithoutName = {
325
+ bubblingEventTypes,
326
+ directEventTypes,
327
+ validAttributes: {
328
+ ...validAttributesForNonEventProps,
329
+ ...validAttributesForEventProps,
330
+ },
331
+ };
332
+ // [Windows
333
+ export default PlatformBaseViewConfigWindows;
334
+ // Windows]
@@ -23,8 +23,6 @@ import * as React from 'react';
23
23
 
24
24
  let getRuntimeConfig;
25
25
 
26
- let componentNameToExists: Map<string, boolean> = new Map();
27
-
28
26
  /**
29
27
  * Configures a function that is called to determine whether a given component
30
28
  * should be registered using reflection of the native component at runtime.
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @flow strict-local
9
+ */
10
+
11
+ import type {PartialViewConfig} from '../Renderer/shims/ReactNativeTypes';
12
+ import BaseViewConfig from './BaseViewConfig';
13
+
14
+ export type PartialViewConfigWithoutName = $Rest<
15
+ PartialViewConfig,
16
+ {uiViewClassName: string},
17
+ >;
18
+
19
+ const PlatformBaseViewConfig: PartialViewConfigWithoutName = BaseViewConfig;
20
+
21
+ // In Wilde/FB4A, use RNHostComponentListRoute in Bridge mode to verify
22
+ // whether the JS props defined here match the native props defined
23
+ // in RCTViewManagers in iOS, and ViewManagers in Android.
24
+ export default PlatformBaseViewConfig;
@@ -9,12 +9,9 @@
9
9
  */
10
10
 
11
11
  import {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';
12
- // $FlowFixMe[nonstrict-import]
13
- import getNativeComponentAttributes from '../ReactNative/getNativeComponentAttributes';
14
- // $FlowFixMe[nonstrict-import]
15
- import {createViewConfig} from './ViewConfig';
12
+ import {isIgnored} from './ViewConfigIgnore';
16
13
 
17
- type Difference =
14
+ export type Difference =
18
15
  | {
19
16
  type: 'missing',
20
17
  path: Array<string>,
@@ -32,7 +29,7 @@ type Difference =
32
29
  staticValue: mixed,
33
30
  };
34
31
 
35
- type ValidationResult = ValidResult | InvalidResult;
32
+ export type ValidationResult = ValidResult | InvalidResult;
36
33
  type ValidResult = {
37
34
  type: 'valid',
38
35
  };
@@ -41,41 +38,6 @@ type InvalidResult = {
41
38
  differences: Array<Difference>,
42
39
  };
43
40
 
44
- type ViewConfigValidationResult = {
45
- componentName: string,
46
- nativeViewConfig?: ?ViewConfig,
47
- staticViewConfig?: ?ViewConfig,
48
- validationResult?: ?ValidationResult,
49
- };
50
-
51
- // e.g. require('MyNativeComponent') where MyNativeComponent.js exports a HostComponent
52
- type JSModule = $FlowFixMe;
53
-
54
- export function validateStaticViewConfigs(
55
- nativeComponent: JSModule,
56
- ): ViewConfigValidationResult {
57
- const nativeViewConfig = getNativeComponentAttributes(
58
- nativeComponent.default || nativeComponent,
59
- );
60
-
61
- const generatedPartialViewConfig = nativeComponent.__INTERNAL_VIEW_CONFIG;
62
- const staticViewConfig: ?ViewConfig =
63
- generatedPartialViewConfig && createViewConfig(generatedPartialViewConfig);
64
-
65
- const componentName: string = nativeComponent.default || nativeComponent;
66
- const validationResult: ?ValidationResult =
67
- nativeViewConfig &&
68
- staticViewConfig &&
69
- validate(componentName, nativeViewConfig, staticViewConfig);
70
-
71
- return {
72
- componentName,
73
- nativeViewConfig,
74
- staticViewConfig,
75
- validationResult,
76
- };
77
- }
78
-
79
41
  /**
80
42
  * During the migration from native view configs to static view configs, this is
81
43
  * used to validate that the two are equivalent.
@@ -183,7 +145,10 @@ function accumulateDifferences(
183
145
  }
184
146
 
185
147
  for (const staticKey in staticObject) {
186
- if (!nativeObject.hasOwnProperty(staticKey)) {
148
+ if (
149
+ !nativeObject.hasOwnProperty(staticKey) &&
150
+ !isIgnored(staticObject[staticKey])
151
+ ) {
187
152
  differences.push({
188
153
  path: [...path, staticKey],
189
154
  type: 'unexpected',
@@ -8,11 +8,11 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import ReactNativeViewViewConfig from '../Components/View/ReactNativeViewViewConfig';
12
11
  import type {
13
12
  PartialViewConfig,
14
13
  ViewConfig,
15
14
  } from '../Renderer/shims/ReactNativeTypes';
15
+ import PlatformBaseViewConfig from './PlatformBaseViewConfig';
16
16
 
17
17
  /**
18
18
  * Creates a complete `ViewConfig` from a `PartialViewConfig`.
@@ -24,16 +24,16 @@ export function createViewConfig(
24
24
  uiViewClassName: partialViewConfig.uiViewClassName,
25
25
  Commands: {},
26
26
  bubblingEventTypes: composeIndexers(
27
- ReactNativeViewViewConfig.bubblingEventTypes,
27
+ PlatformBaseViewConfig.bubblingEventTypes,
28
28
  partialViewConfig.bubblingEventTypes,
29
29
  ),
30
30
  directEventTypes: composeIndexers(
31
- ReactNativeViewViewConfig.directEventTypes,
31
+ PlatformBaseViewConfig.directEventTypes,
32
32
  partialViewConfig.directEventTypes,
33
33
  ),
34
34
  validAttributes: composeIndexers(
35
35
  // $FlowFixMe[incompatible-call] `style` property confuses Flow.
36
- ReactNativeViewViewConfig.validAttributes,
36
+ PlatformBaseViewConfig.validAttributes,
37
37
  // $FlowFixMe[incompatible-call] `style` property confuses Flow.
38
38
  partialViewConfig.validAttributes,
39
39
  ),
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ import Platform from '../Utilities/Platform';
12
+
13
+ const ignoredViewConfigProps = new WeakSet<{...}>();
14
+
15
+ /**
16
+ * Decorates ViewConfig values that are dynamically injected by the library,
17
+ * react-native-gesture-handler. (T45765076)
18
+ */
19
+ export function DynamicallyInjectedByGestureHandler<T: {...}>(object: T): T {
20
+ ignoredViewConfigProps.add(object);
21
+ return object;
22
+ }
23
+
24
+ /**
25
+ * On iOS, ViewManager event declarations generate {eventName}: true entries
26
+ * in ViewConfig valueAttributes. These entries aren't generated for Android.
27
+ * This annotation allows Static ViewConfigs to insert these entries into
28
+ * iOS but not Android.
29
+ *
30
+ * In the future, we want to remove this platform-inconsistency. We want
31
+ * to set RN$ViewConfigEventValidAttributesDisabled = true server-side,
32
+ * so that iOS does not generate validAttributes from event props in iOS RCTViewManager,
33
+ * since Android does not generate validAttributes from events props in Android ViewManager.
34
+ *
35
+ * TODO(T110872225): Remove this logic, after achieving platform-consistency
36
+ */
37
+ export function ConditionallyIgnoredEventHandlers<T: {[name: string]: true}>(
38
+ value: T,
39
+ ): T | void {
40
+ if (
41
+ Platform.OS === 'ios' &&
42
+ !(global.RN$ViewConfigEventValidAttributesDisabled === true)
43
+ ) {
44
+ return value;
45
+ }
46
+ return undefined;
47
+ }
48
+
49
+ export function isIgnored(value: mixed): boolean {
50
+ if (typeof value === 'object' && value != null) {
51
+ return ignoredViewConfigProps.has(value);
52
+ }
53
+ return false;
54
+ }
@@ -64,6 +64,12 @@ class FormData {
64
64
  this._parts.push([key, value]);
65
65
  }
66
66
 
67
+ getAll(key: string): Array<FormDataValue> {
68
+ return this._parts
69
+ .filter(([name]) => name === key)
70
+ .map(([, value]) => value);
71
+ }
72
+
67
73
  getParts(): Array<FormDataPart> {
68
74
  return this._parts.map(([name, value]) => {
69
75
  const contentDisposition = 'form-data; name="' + name + '"';
@@ -74,7 +80,7 @@ class FormData {
74
80
  // an object with a `uri` attribute. Optionally, it can also
75
81
  // have a `name` and `type` attribute to specify filename and
76
82
  // content type (cf. web Blob interface.)
77
- if (typeof value === 'object' && value) {
83
+ if (typeof value === 'object' && !Array.isArray(value) && value) {
78
84
  if (typeof value.name === 'string') {
79
85
  headers['content-disposition'] += '; filename="' + value.name + '"';
80
86
  }