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
@@ -9,11 +9,15 @@
9
9
  */
10
10
 
11
11
  import type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';
12
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
12
+ import type {
13
+ HostComponent,
14
+ PartialViewConfig,
15
+ } from '../../Renderer/shims/ReactNativeTypes';
13
16
  import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
17
+ import {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';
14
18
  import Platform from '../../Utilities/Platform';
15
19
 
16
- const RCTScrollViewViewConfig =
20
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
17
21
  Platform.OS === 'android'
18
22
  ? {
19
23
  uiViewClassName: 'RCTScrollView',
@@ -70,6 +74,7 @@ const RCTScrollViewViewConfig =
70
74
  removeClippedSubviews: true,
71
75
  borderTopRightRadius: true,
72
76
  borderLeftColor: {process: require('../../StyleSheet/processColor')},
77
+ pointerEvents: true,
73
78
  },
74
79
  }
75
80
  : {
@@ -138,13 +143,21 @@ const RCTScrollViewViewConfig =
138
143
  snapToOffsets: true,
139
144
  snapToStart: true,
140
145
  zoomScale: true,
146
+ ...ConditionallyIgnoredEventHandlers({
147
+ onScrollBeginDrag: true,
148
+ onMomentumScrollEnd: true,
149
+ onScrollEndDrag: true,
150
+ onMomentumScrollBegin: true,
151
+ onScrollToTop: true,
152
+ onScroll: true,
153
+ }),
141
154
  },
142
155
  };
143
156
 
144
157
  const ScrollViewNativeComponent: HostComponent<Props> =
145
158
  NativeComponentRegistry.get<Props>(
146
159
  'RCTScrollView',
147
- () => RCTScrollViewViewConfig,
160
+ () => __INTERNAL_VIEW_CONFIG,
148
161
  );
149
162
 
150
163
  export default ScrollViewNativeComponent;
@@ -170,7 +170,9 @@ class ScrollViewStickyHeader extends React.Component<Props, State> {
170
170
 
171
171
  this.props.onLayout(event);
172
172
  const child = React.Children.only(this.props.children);
173
- if (child.props.onLayout) {
173
+ if (child.props.onCellLayout) {
174
+ child.props.onCellLayout(event, child.props.cellKey, child.props.index);
175
+ } else if (child.props.onLayout) {
174
176
  child.props.onLayout(event);
175
177
  }
176
178
  };
@@ -228,7 +228,6 @@ const Slider = (
228
228
  }
229
229
  : null;
230
230
 
231
- const onChangeEvent = onValueChangeEvent;
232
231
  const onSlidingCompleteEvent = onSlidingComplete
233
232
  ? (event: Event) => {
234
233
  onSlidingComplete(event.nativeEvent.value);
@@ -250,7 +249,6 @@ const Slider = (
250
249
  disabled={disabled}
251
250
  maximumValue={maximumValue}
252
251
  minimumValue={minimumValue}
253
- onChange={onChangeEvent}
254
252
  onResponderTerminationRequest={() => false}
255
253
  onSlidingComplete={onSlidingCompleteEvent}
256
254
  onStartShouldSetResponder={() => true}
@@ -47,7 +47,6 @@ type NativeProps = $ReadOnly<{|
47
47
  value?: WithDefault<Double, 0>,
48
48
 
49
49
  // Events
50
- onChange?: ?BubblingEventHandler<Event>,
51
50
  onValueChange?: ?BubblingEventHandler<Event>,
52
51
  onSlidingComplete?: ?DirectEventHandler<Event>,
53
52
  |}>;
@@ -471,7 +471,12 @@ class StatusBar extends React.Component<Props> {
471
471
  if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {
472
472
  NativeStatusBarManagerAndroid.setHidden(mergedProps.hidden.value);
473
473
  }
474
- if (!oldProps || oldProps.translucent !== mergedProps.translucent) {
474
+ // Activities are not translucent by default, so always set if true.
475
+ if (
476
+ !oldProps ||
477
+ oldProps.translucent !== mergedProps.translucent ||
478
+ mergedProps.translucent
479
+ ) {
475
480
  NativeStatusBarManagerAndroid.setTranslucent(mergedProps.translucent);
476
481
  }
477
482
  }
@@ -185,8 +185,18 @@ const SwitchWithForwardedRef: React.AbstractComponent<
185
185
  }, [value, native]);
186
186
 
187
187
  if (Platform.OS === 'android') {
188
+ const {accessibilityState} = restProps;
189
+ const _disabled =
190
+ disabled != null ? disabled : accessibilityState?.disabled;
191
+
192
+ const _accessibilityState =
193
+ _disabled !== accessibilityState?.disabled
194
+ ? {...accessibilityState, disabled: _disabled}
195
+ : accessibilityState;
196
+
188
197
  const platformProps = {
189
- enabled: disabled !== true,
198
+ accessibilityState: _accessibilityState,
199
+ enabled: _disabled !== true,
190
200
  on: value === true,
191
201
  style,
192
202
  thumbTintColor: thumbColor,
@@ -17,7 +17,10 @@ import type {
17
17
  Int32,
18
18
  WithDefault,
19
19
  } from '../../Types/CodegenTypes';
20
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
20
+ import type {
21
+ HostComponent,
22
+ PartialViewConfig,
23
+ } from '../../Renderer/shims/ReactNativeTypes';
21
24
  import type {
22
25
  TextStyleProp,
23
26
  ViewStyleProp,
@@ -593,123 +596,125 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
593
596
  supportedCommands: ['focus', 'blur', 'setTextAndSelection'],
594
597
  });
595
598
 
596
- let AndroidTextInputNativeComponent = NativeComponentRegistry.get<NativeProps>(
597
- 'AndroidTextInput',
598
- () => ({
599
- uiViewClassName: 'AndroidTextInput',
600
- bubblingEventTypes: {
601
- topBlur: {
602
- phasedRegistrationNames: {
603
- bubbled: 'onBlur',
604
- captured: 'onBlurCapture',
605
- },
606
- },
607
- topEndEditing: {
608
- phasedRegistrationNames: {
609
- bubbled: 'onEndEditing',
610
- captured: 'onEndEditingCapture',
611
- },
599
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
600
+ uiViewClassName: 'AndroidTextInput',
601
+ bubblingEventTypes: {
602
+ topBlur: {
603
+ phasedRegistrationNames: {
604
+ bubbled: 'onBlur',
605
+ captured: 'onBlurCapture',
612
606
  },
613
- topFocus: {
614
- phasedRegistrationNames: {
615
- bubbled: 'onFocus',
616
- captured: 'onFocusCapture',
617
- },
618
- },
619
- topKeyPress: {
620
- phasedRegistrationNames: {
621
- bubbled: 'onKeyPress',
622
- captured: 'onKeyPressCapture',
623
- },
607
+ },
608
+ topEndEditing: {
609
+ phasedRegistrationNames: {
610
+ bubbled: 'onEndEditing',
611
+ captured: 'onEndEditingCapture',
624
612
  },
625
- topSubmitEditing: {
626
- phasedRegistrationNames: {
627
- bubbled: 'onSubmitEditing',
628
- captured: 'onSubmitEditingCapture',
629
- },
613
+ },
614
+ topFocus: {
615
+ phasedRegistrationNames: {
616
+ bubbled: 'onFocus',
617
+ captured: 'onFocusCapture',
630
618
  },
631
- topTextInput: {
632
- phasedRegistrationNames: {
633
- bubbled: 'onTextInput',
634
- captured: 'onTextInputCapture',
635
- },
619
+ },
620
+ topKeyPress: {
621
+ phasedRegistrationNames: {
622
+ bubbled: 'onKeyPress',
623
+ captured: 'onKeyPressCapture',
636
624
  },
637
625
  },
638
- directEventTypes: {
639
- topScroll: {
640
- registrationName: 'onScroll',
626
+ topSubmitEditing: {
627
+ phasedRegistrationNames: {
628
+ bubbled: 'onSubmitEditing',
629
+ captured: 'onSubmitEditingCapture',
641
630
  },
642
631
  },
643
- validAttributes: {
644
- maxFontSizeMultiplier: true,
645
- adjustsFontSizeToFit: true,
646
- minimumFontScale: true,
647
- autoFocus: true,
648
- placeholder: true,
649
- inlineImagePadding: true,
650
- contextMenuHidden: true,
651
- textShadowColor: {process: require('../../StyleSheet/processColor')},
652
- maxLength: true,
653
- selectTextOnFocus: true,
654
- textShadowRadius: true,
655
- underlineColorAndroid: {
656
- process: require('../../StyleSheet/processColor'),
632
+ topTextInput: {
633
+ phasedRegistrationNames: {
634
+ bubbled: 'onTextInput',
635
+ captured: 'onTextInputCapture',
657
636
  },
658
- textDecorationLine: true,
659
- blurOnSubmit: true,
660
- textAlignVertical: true,
661
- fontStyle: true,
662
- textShadowOffset: true,
663
- selectionColor: {process: require('../../StyleSheet/processColor')},
664
- selection: true,
665
- placeholderTextColor: {process: require('../../StyleSheet/processColor')},
666
- importantForAutofill: true,
667
- lineHeight: true,
668
- textTransform: true,
669
- returnKeyType: true,
670
- keyboardType: true,
671
- multiline: true,
672
- color: {process: require('../../StyleSheet/processColor')},
673
- autoComplete: true,
674
- numberOfLines: true,
675
- letterSpacing: true,
676
- returnKeyLabel: true,
677
- fontSize: true,
678
- onKeyPress: true,
679
- cursorColor: {process: require('../../StyleSheet/processColor')},
680
- text: true,
681
- showSoftInputOnFocus: true,
682
- textAlign: true,
683
- autoCapitalize: true,
684
- autoCorrect: true,
685
- caretHidden: true,
686
- secureTextEntry: true,
687
- textBreakStrategy: true,
688
- onScroll: true,
689
- onContentSizeChange: true,
690
- disableFullscreenUI: true,
691
- includeFontPadding: true,
692
- fontWeight: true,
693
- fontFamily: true,
694
- allowFontScaling: true,
695
- onSelectionChange: true,
696
- mostRecentEventCount: true,
697
- inlineImageLeft: true,
698
- editable: true,
699
- fontVariant: true,
700
- borderBottomRightRadius: true,
701
- borderBottomColor: {process: require('../../StyleSheet/processColor')},
702
- borderRadius: true,
703
- borderRightColor: {process: require('../../StyleSheet/processColor')},
704
- borderColor: {process: require('../../StyleSheet/processColor')},
705
- borderTopRightRadius: true,
706
- borderStyle: true,
707
- borderBottomLeftRadius: true,
708
- borderLeftColor: {process: require('../../StyleSheet/processColor')},
709
- borderTopLeftRadius: true,
710
- borderTopColor: {process: require('../../StyleSheet/processColor')},
711
637
  },
712
- }),
638
+ },
639
+ directEventTypes: {
640
+ topScroll: {
641
+ registrationName: 'onScroll',
642
+ },
643
+ },
644
+ validAttributes: {
645
+ maxFontSizeMultiplier: true,
646
+ adjustsFontSizeToFit: true,
647
+ minimumFontScale: true,
648
+ autoFocus: true,
649
+ placeholder: true,
650
+ inlineImagePadding: true,
651
+ contextMenuHidden: true,
652
+ textShadowColor: {process: require('../../StyleSheet/processColor')},
653
+ maxLength: true,
654
+ selectTextOnFocus: true,
655
+ textShadowRadius: true,
656
+ underlineColorAndroid: {
657
+ process: require('../../StyleSheet/processColor'),
658
+ },
659
+ textDecorationLine: true,
660
+ blurOnSubmit: true,
661
+ textAlignVertical: true,
662
+ fontStyle: true,
663
+ textShadowOffset: true,
664
+ selectionColor: {process: require('../../StyleSheet/processColor')},
665
+ selection: true,
666
+ placeholderTextColor: {process: require('../../StyleSheet/processColor')},
667
+ importantForAutofill: true,
668
+ lineHeight: true,
669
+ textTransform: true,
670
+ returnKeyType: true,
671
+ keyboardType: true,
672
+ multiline: true,
673
+ color: {process: require('../../StyleSheet/processColor')},
674
+ autoComplete: true,
675
+ numberOfLines: true,
676
+ letterSpacing: true,
677
+ returnKeyLabel: true,
678
+ fontSize: true,
679
+ onKeyPress: true,
680
+ cursorColor: {process: require('../../StyleSheet/processColor')},
681
+ text: true,
682
+ showSoftInputOnFocus: true,
683
+ textAlign: true,
684
+ autoCapitalize: true,
685
+ autoCorrect: true,
686
+ caretHidden: true,
687
+ secureTextEntry: true,
688
+ textBreakStrategy: true,
689
+ onScroll: true,
690
+ onContentSizeChange: true,
691
+ disableFullscreenUI: true,
692
+ includeFontPadding: true,
693
+ fontWeight: true,
694
+ fontFamily: true,
695
+ allowFontScaling: true,
696
+ onSelectionChange: true,
697
+ mostRecentEventCount: true,
698
+ inlineImageLeft: true,
699
+ editable: true,
700
+ fontVariant: true,
701
+ borderBottomRightRadius: true,
702
+ borderBottomColor: {process: require('../../StyleSheet/processColor')},
703
+ borderRadius: true,
704
+ borderRightColor: {process: require('../../StyleSheet/processColor')},
705
+ borderColor: {process: require('../../StyleSheet/processColor')},
706
+ borderTopRightRadius: true,
707
+ borderStyle: true,
708
+ borderBottomLeftRadius: true,
709
+ borderLeftColor: {process: require('../../StyleSheet/processColor')},
710
+ borderTopLeftRadius: true,
711
+ borderTopColor: {process: require('../../StyleSheet/processColor')},
712
+ },
713
+ };
714
+
715
+ let AndroidTextInputNativeComponent = NativeComponentRegistry.get<NativeProps>(
716
+ 'AndroidTextInput',
717
+ () => __INTERNAL_VIEW_CONFIG,
713
718
  );
714
719
 
715
720
  // flowlint-next-line unclear-type:off
@@ -8,7 +8,10 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
11
+ import type {
12
+ HostComponent,
13
+ PartialViewConfig,
14
+ } from '../../Renderer/shims/ReactNativeTypes';
12
15
  import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
13
16
  import type {TextInputNativeCommands} from './TextInputNativeCommands';
14
17
  import RCTTextInputViewConfig from './RCTTextInputViewConfig';
@@ -22,15 +25,20 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
22
25
  supportedCommands: ['focus', 'blur', 'setTextAndSelection'],
23
26
  });
24
27
 
28
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
29
+ uiViewClassName: 'RCTMultilineTextInputView',
30
+ ...RCTTextInputViewConfig,
31
+ validAttributes: {
32
+ ...RCTTextInputViewConfig.validAttributes,
33
+ dataDetectorTypes: true,
34
+ },
35
+ };
36
+
25
37
  const MultilineTextInputNativeComponent: HostComponent<mixed> =
26
- NativeComponentRegistry.get<mixed>('RCTMultilineTextInputView', () => ({
27
- uiViewClassName: 'RCTMultilineTextInputView',
28
- ...RCTTextInputViewConfig,
29
- validAttributes: {
30
- ...RCTTextInputViewConfig.validAttributes,
31
- dataDetectorTypes: true,
32
- },
33
- }));
38
+ NativeComponentRegistry.get<mixed>(
39
+ 'RCTMultilineTextInputView',
40
+ () => __INTERNAL_VIEW_CONFIG,
41
+ );
34
42
 
35
43
  // flowlint-next-line unclear-type:off
36
44
  export default ((MultilineTextInputNativeComponent: any): HostComponent<mixed>);
@@ -8,7 +8,10 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
11
+ import type {
12
+ HostComponent,
13
+ PartialViewConfig,
14
+ } from '../../Renderer/shims/ReactNativeTypes';
12
15
  import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
13
16
  import type {TextInputNativeCommands} from './TextInputNativeCommands';
14
17
  import RCTTextInputViewConfig from './RCTTextInputViewConfig';
@@ -22,11 +25,16 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
22
25
  supportedCommands: ['focus', 'blur', 'setTextAndSelection'],
23
26
  });
24
27
 
28
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
29
+ uiViewClassName: 'RCTSinglelineTextInputView',
30
+ ...RCTTextInputViewConfig,
31
+ };
32
+
25
33
  const SinglelineTextInputNativeComponent: HostComponent<mixed> =
26
- NativeComponentRegistry.get<mixed>('RCTSinglelineTextInputView', () => ({
27
- uiViewClassName: 'RCTSinglelineTextInputView',
28
- ...RCTTextInputViewConfig,
29
- }));
34
+ NativeComponentRegistry.get<mixed>(
35
+ 'RCTSinglelineTextInputView',
36
+ () => __INTERNAL_VIEW_CONFIG,
37
+ );
30
38
 
31
39
  // flowlint-next-line unclear-type:off
32
40
  export default ((SinglelineTextInputNativeComponent: any): HostComponent<mixed>);
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {PartialViewConfig} from '../../Renderer/shims/ReactNativeTypes';
12
+ import {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';
12
13
 
13
14
  type PartialViewConfigWithoutName = $Rest<
14
15
  PartialViewConfig,
@@ -147,6 +148,15 @@ const RCTTextInputViewConfig = {
147
148
  clearTextOnFocus: true,
148
149
  showSoftInputOnFocus: true,
149
150
  autoFocus: true,
151
+ ...ConditionallyIgnoredEventHandlers({
152
+ onChange: true,
153
+ onSelectionChange: true,
154
+ onContentSizeChange: true,
155
+ onScroll: true,
156
+ onChangeSync: true,
157
+ onKeyPressSync: true,
158
+ onTextInput: true,
159
+ }),
150
160
  },
151
161
  };
152
162
 
@@ -1341,13 +1341,6 @@ const ExportedForwardRef: React.AbstractComponent<
1341
1341
  );
1342
1342
  });
1343
1343
 
1344
- /**
1345
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
1346
- * releases. This is deprecated and will be removed in the future.
1347
- */
1348
- ExportedForwardRef.propTypes =
1349
- require('deprecated-react-native-prop-types').TextInputPropTypes;
1350
-
1351
1344
  // $FlowFixMe[prop-missing]
1352
1345
  ExportedForwardRef.State = {
1353
1346
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
@@ -1357,7 +1350,7 @@ ExportedForwardRef.State = {
1357
1350
  blurTextInput: TextInputState.blurTextInput,
1358
1351
  };
1359
1352
 
1360
- type TextInputComponentStatics = $ReadOnly<{|
1353
+ export type TextInputComponentStatics = $ReadOnly<{|
1361
1354
  State: $ReadOnly<{|
1362
1355
  currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,
1363
1356
  currentlyFocusedField: typeof TextInputState.currentlyFocusedField,
@@ -1113,7 +1113,7 @@ function InternalTextInput(props: Props): React.Node {
1113
1113
 
1114
1114
  const _setNativeRef = setAndForwardRef({
1115
1115
  getForwardedRef: () => props.forwardedRef,
1116
- setLocalRef: (ref) => {
1116
+ setLocalRef: ref => {
1117
1117
  inputRef.current = ref;
1118
1118
 
1119
1119
  /*
@@ -1407,6 +1407,8 @@ function InternalTextInput(props: Props): React.Node {
1407
1407
  <WindowsTextInput
1408
1408
  ref={_setNativeRef}
1409
1409
  {...props}
1410
+ accessible={accessible}
1411
+ focusable={focusable}
1410
1412
  dataDetectorTypes={props.dataDetectorTypes}
1411
1413
  mostRecentEventCount={mostRecentEventCount}
1412
1414
  onBlur={_onBlur}
@@ -1455,13 +1457,6 @@ const ExportedForwardRef: React.AbstractComponent<
1455
1457
  );
1456
1458
  });
1457
1459
 
1458
- /**
1459
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
1460
- * releases. This is deprecated and will be removed in the future.
1461
- */
1462
- ExportedForwardRef.propTypes =
1463
- require('deprecated-react-native-prop-types').TextInputPropTypes;
1464
-
1465
1460
  // $FlowFixMe[prop-missing]
1466
1461
  ExportedForwardRef.State = {
1467
1462
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
@@ -1471,7 +1466,7 @@ ExportedForwardRef.State = {
1471
1466
  blurTextInput: TextInputState.blurTextInput,
1472
1467
  };
1473
1468
 
1474
- type TextInputComponentStatics = $ReadOnly<{|
1469
+ export type TextInputComponentStatics = $ReadOnly<{|
1475
1470
  State: $ReadOnly<{|
1476
1471
  currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,
1477
1472
  currentlyFocusedField: typeof TextInputState.currentlyFocusedField,
@@ -73,7 +73,7 @@ function blurField(textFieldID: ?number) {
73
73
  /**
74
74
  * @param {number} TextInputID id of the text field to focus
75
75
  * Focuses the specified text field
76
- * noop if the text field was already focused
76
+ * noop if the text field was already focused or if the field is not editable
77
77
  */
78
78
  function focusTextInput(textField: ?ComponentRef) {
79
79
  if (typeof textField === 'number') {
@@ -86,7 +86,15 @@ function focusTextInput(textField: ?ComponentRef) {
86
86
  return;
87
87
  }
88
88
 
89
- if (currentlyFocusedInputRef !== textField && textField != null) {
89
+ if (textField != null) {
90
+ const fieldCanBeFocused =
91
+ currentlyFocusedInputRef !== textField &&
92
+ // $FlowFixMe - `currentProps` is missing in `NativeMethods`
93
+ textField.currentProps?.editable !== false;
94
+
95
+ if (!fieldCanBeFocused) {
96
+ return;
97
+ }
90
98
  focusInput(textField);
91
99
  if (Platform.OS === 'ios') {
92
100
  // This isn't necessarily a single line text input
@@ -20,7 +20,6 @@ import {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSi
20
20
  import {Commands as WindowsTextInputCommands} from '../../Components/TextInput/WindowsTextInputNativeComponent';
21
21
 
22
22
  import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
23
- import {UIManager} from 'react-native';
24
23
  type ComponentRef = React.ElementRef<HostComponent<mixed>>;
25
24
 
26
25
  let currentlyFocusedInputRef: ?ComponentRef = null;
@@ -75,7 +74,7 @@ function blurField(textFieldID: ?number) {
75
74
  /**
76
75
  * @param {number} TextInputID id of the text field to focus
77
76
  * Focuses the specified text field
78
- * noop if the text field was already focused
77
+ * noop if the text field was already focused or if the field is not editable
79
78
  */
80
79
  function focusTextInput(textField: ?ComponentRef) {
81
80
  if (typeof textField === 'number') {
@@ -97,7 +96,15 @@ function focusTextInput(textField: ?ComponentRef) {
97
96
  focusInput(textField);
98
97
  WindowsTextInputCommands.focus(textField);
99
98
  // Windows]
100
- } else if (currentlyFocusedInputRef !== textField && textField != null) {
99
+ } else if (textField != null) {
100
+ const fieldCanBeFocused =
101
+ currentlyFocusedInputRef !== textField &&
102
+ // $FlowFixMe - `currentProps` is missing in `NativeMethods`
103
+ textField.currentProps?.editable !== false;
104
+
105
+ if (!fieldCanBeFocused) {
106
+ return;
107
+ }
101
108
  focusInput(textField);
102
109
  if (Platform.OS === 'ios') {
103
110
  // This isn't necessarily a single line text input
@@ -17,7 +17,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
17
17
  });
18
18
 
19
19
  const WindowsTextInputComponent: NativeType =
20
- requireNativeComponent<mixed>('RCTTextInput');
20
+ requireNativeComponent<mixed>('WindowsTextInput');
21
21
 
22
22
  export default WindowsTextInputComponent;
23
23
  // [Windows]
@@ -137,6 +137,7 @@ class TouchableBounce extends React.Component<Props, State> {
137
137
  accessible={this.props.accessible !== false}
138
138
  accessibilityLabel={this.props.accessibilityLabel}
139
139
  accessibilityHint={this.props.accessibilityHint}
140
+ accessibilityLanguage={this.props.accessibilityLanguage}
140
141
  accessibilityRole={this.props.accessibilityRole}
141
142
  accessibilityState={this.props.accessibilityState}
142
143
  accessibilityActions={this.props.accessibilityActions}
@@ -296,6 +296,7 @@ class TouchableHighlight extends React.Component<Props, State> {
296
296
  accessible={this.props.accessible !== false}
297
297
  accessibilityLabel={this.props.accessibilityLabel}
298
298
  accessibilityHint={this.props.accessibilityHint}
299
+ accessibilityLanguage={this.props.accessibilityLanguage}
299
300
  accessibilityRole={this.props.accessibilityRole}
300
301
  accessibilityState={accessibilityState}
301
302
  accessibilityValue={this.props.accessibilityValue}
@@ -178,7 +178,7 @@ class TouchableHighlight extends React.Component<Props, State> {
178
178
  android_disableSound: this.props.touchSoundDisabled,
179
179
  onMouseEnter: this.props.onMouseEnter, // [Windows]
180
180
  onMouseLeave: this.props.onMouseLeave, // [Windows]
181
- onBlur: (event) => {
181
+ onBlur: event => {
182
182
  if (Platform.isTV) {
183
183
  this._hideUnderlay();
184
184
  }
@@ -186,7 +186,7 @@ class TouchableHighlight extends React.Component<Props, State> {
186
186
  this.props.onBlur(event);
187
187
  }
188
188
  },
189
- onFocus: (event) => {
189
+ onFocus: event => {
190
190
  if (Platform.isTV) {
191
191
  this._showUnderlay();
192
192
  }
@@ -195,7 +195,7 @@ class TouchableHighlight extends React.Component<Props, State> {
195
195
  }
196
196
  },
197
197
  onLongPress: this.props.onLongPress,
198
- onPress: (event) => {
198
+ onPress: event => {
199
199
  if (this._hideTimeout != null) {
200
200
  clearTimeout(this._hideTimeout);
201
201
  }
@@ -209,7 +209,7 @@ class TouchableHighlight extends React.Component<Props, State> {
209
209
  this.props.onPress(event);
210
210
  }
211
211
  },
212
- onPressIn: (event) => {
212
+ onPressIn: event => {
213
213
  if (this._hideTimeout != null) {
214
214
  clearTimeout(this._hideTimeout);
215
215
  this._hideTimeout = null;
@@ -219,7 +219,7 @@ class TouchableHighlight extends React.Component<Props, State> {
219
219
  this.props.onPressIn(event);
220
220
  }
221
221
  },
222
- onPressOut: (event) => {
222
+ onPressOut: event => {
223
223
  if (this._hideTimeout == null) {
224
224
  this._hideUnderlay();
225
225
  }
@@ -303,6 +303,7 @@ class TouchableHighlight extends React.Component<Props, State> {
303
303
  accessible={this.props.accessible !== false}
304
304
  accessibilityLabel={this.props.accessibilityLabel}
305
305
  accessibilityHint={this.props.accessibilityHint}
306
+ accessibilityLanguage={this.props.accessibilityLanguage}
306
307
  accessibilityRole={this.props.accessibilityRole}
307
308
  accessibilityState={accessibilityState}
308
309
  accessibilityValue={this.props.accessibilityValue}