react-native-windows 0.74.10 → 0.75.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 (327) hide show
  1. package/.flowconfig +8 -2
  2. package/Common/Common.vcxproj +8 -0
  3. package/Common/Utilities.cpp +2 -2
  4. package/Directory.Build.targets +5 -0
  5. package/Folly/Folly.vcxproj +10 -2
  6. package/Folly/Folly.vcxproj.filters +0 -7
  7. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
  8. package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
  9. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -0
  11. package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
  12. package/Libraries/Animated/createAnimatedComponent.js +10 -4
  13. package/Libraries/Animated/useAnimatedProps.js +56 -28
  14. package/Libraries/BatchedBridge/MessageQueue.js +1 -0
  15. package/Libraries/Components/Button.js +10 -5
  16. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
  17. package/Libraries/Components/Flyout/Flyout.js +10 -10
  18. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
  19. package/Libraries/Components/Pressable/Pressable.js +13 -6
  20. package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
  21. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
  22. package/Libraries/Components/ScrollView/ScrollView.js +109 -29
  23. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
  24. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
  25. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
  26. package/Libraries/Components/StatusBar/StatusBar.js +1 -21
  27. package/Libraries/Components/Switch/Switch.windows.js +2 -0
  28. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
  29. package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
  30. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
  31. package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
  32. package/Libraries/Components/TextInput/TextInput.js +20 -73
  33. package/Libraries/Components/TextInput/TextInput.windows.js +21 -75
  34. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
  35. package/Libraries/Components/Touchable/Touchable.js +2 -2
  36. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
  37. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
  38. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
  39. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
  40. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
  41. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
  42. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
  43. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
  44. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
  45. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
  46. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  47. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  48. package/Libraries/Components/View/View.js +0 -11
  49. package/Libraries/Components/View/View.windows.js +0 -11
  50. package/Libraries/Components/View/ViewAccessibility.js +4 -4
  51. package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
  52. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
  53. package/Libraries/Components/View/ViewPropTypes.js +7 -0
  54. package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
  55. package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
  56. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
  57. package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
  58. package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
  59. package/Libraries/Core/ErrorHandlers.js +116 -0
  60. package/Libraries/Core/ExceptionsManager.js +2 -2
  61. package/Libraries/Core/ReactNativeVersion.js +3 -3
  62. package/Libraries/Core/setUpDeveloperTools.js +3 -1
  63. package/Libraries/Core/setUpPerformance.js +6 -4
  64. package/Libraries/Core/setUpReactDevTools.js +70 -10
  65. package/Libraries/Core/setUpTimers.js +50 -31
  66. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  67. package/Libraries/Image/Image.android.js +23 -13
  68. package/Libraries/Image/Image.d.ts +14 -15
  69. package/Libraries/Image/Image.ios.js +21 -11
  70. package/Libraries/Image/Image.windows.js +21 -11
  71. package/Libraries/Image/ImageProps.js +16 -5
  72. package/Libraries/Image/ImageTypes.flow.js +7 -2
  73. package/Libraries/Image/ImageUtils.js +1 -0
  74. package/Libraries/Image/ImageViewNativeComponent.js +2 -1
  75. package/Libraries/Inspector/ElementBox.js +6 -3
  76. package/Libraries/Inspector/ElementProperties.js +1 -1
  77. package/Libraries/Interaction/TouchHistoryMath.js +4 -4
  78. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
  79. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  80. package/Libraries/LogBox/Data/LogBoxData.js +39 -29
  81. package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
  82. package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
  83. package/Libraries/LogBox/LogBox.js +29 -12
  84. package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
  85. package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
  86. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  87. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
  88. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  89. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
  90. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
  91. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  92. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
  93. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
  94. package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
  95. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  96. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  97. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  98. package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
  99. package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
  101. package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
  102. package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
  103. package/Libraries/Network/XMLHttpRequest.js +5 -1
  104. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  105. package/Libraries/Pressability/Pressability.js +3 -51
  106. package/Libraries/Pressability/Pressability.windows.js +3 -51
  107. package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
  108. package/Libraries/ReactNative/AppRegistry.js +2 -4
  109. package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
  110. package/Libraries/ReactNative/FabricUIManager.js +0 -51
  111. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
  112. package/Libraries/ReactNative/RendererImplementation.js +20 -2
  113. package/Libraries/ReactNative/UIManager.d.ts +0 -21
  114. package/Libraries/ReactNative/UIManagerProperties.js +0 -3
  115. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
  116. package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
  117. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
  118. package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
  119. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
  120. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
  121. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
  123. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  124. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  125. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  126. package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
  127. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
  128. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  129. package/Libraries/Share/Share.d.ts +16 -10
  130. package/Libraries/Share/Share.js +14 -15
  131. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
  132. package/Libraries/StyleSheet/StyleSheet.js +3 -10
  133. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
  134. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
  135. package/Libraries/StyleSheet/flattenStyle.js +1 -0
  136. package/Libraries/StyleSheet/processFilter.js +132 -0
  137. package/Libraries/StyleSheet/processTransform.js +18 -3
  138. package/Libraries/Text/Text.js +151 -128
  139. package/Libraries/Text/Text.windows.js +144 -127
  140. package/Libraries/Text/TextNativeComponent.js +5 -4
  141. package/Libraries/Text/TextProps.js +6 -6
  142. package/Libraries/Text/TextProps.windows.js +6 -6
  143. package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
  144. package/Libraries/Types/CodegenTypes.js +3 -0
  145. package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
  146. package/Libraries/Utilities/Dimensions.js +1 -0
  147. package/Libraries/Utilities/HMRClient.js +36 -8
  148. package/Libraries/Utilities/HMRClientProdShim.js +1 -0
  149. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  150. package/Libraries/Utilities/Platform.android.js +4 -4
  151. package/Libraries/Utilities/RCTLog.js +1 -0
  152. package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
  153. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
  154. package/Libraries/__tests__/ViewWindows-test.js +6 -6
  155. package/Libraries/promiseRejectionTrackingOptions.js +1 -0
  156. package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
  157. package/Microsoft.ReactNative/ComponentView.idl +0 -17
  158. package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
  159. package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
  160. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
  161. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
  162. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +12 -3
  163. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -1
  164. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -12
  165. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
  166. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
  167. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
  168. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -18
  169. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -5
  170. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -11
  171. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
  172. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
  173. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
  174. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
  175. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
  176. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
  177. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
  178. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
  179. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  180. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
  181. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
  182. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -17
  183. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  184. package/Microsoft.ReactNative/Timer.idl +1 -3
  185. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
  186. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
  187. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  188. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
  189. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  190. package/Microsoft.ReactNative/packages.lock.json +45 -72
  191. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  192. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
  193. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
  194. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
  195. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
  196. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  197. package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
  198. package/PropertySheets/ARM64EC.props +13 -0
  199. package/PropertySheets/Application/ARM64EC.props +13 -0
  200. package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
  201. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
  202. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  203. package/PropertySheets/JSEngine.props +2 -0
  204. package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
  205. package/README.md +21 -21
  206. package/ReactCommon/ReactCommon.vcxproj +11 -1
  207. package/ReactCommon/ReactCommon.vcxproj.filters +19 -12
  208. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
  209. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
  210. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
  211. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
  212. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
  213. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
  214. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
  215. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
  216. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
  219. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
  220. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
  221. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
  222. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
  223. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
  224. package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
  225. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +10 -6
  226. package/Scripts/rnw-dependencies.ps1 +36 -23
  227. package/Shared/HermesRuntimeHolder.cpp +19 -1
  228. package/Shared/HermesRuntimeHolder.h +8 -1
  229. package/Shared/HermesSamplingProfiler.cpp +1 -2
  230. package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
  231. package/Shared/OInstance.cpp +1 -2
  232. package/Shared/Shared.vcxitems +21 -15
  233. package/Shared/Shared.vcxitems.filters +8 -3
  234. package/Shared/Threading/BatchingQueueThread.cpp +6 -2
  235. package/Shared/Threading/BatchingQueueThread.h +2 -2
  236. package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
  237. package/codegen/NativeAppStateSpec.g.h +8 -8
  238. package/codegen/NativeBlobModuleSpec.g.h +0 -10
  239. package/codegen/NativeDOMSpec.g.h +136 -0
  240. package/codegen/NativeDevSettingsSpec.g.h +11 -5
  241. package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
  242. package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
  243. package/codegen/NativeMicrotasksSpec.g.h +34 -0
  244. package/codegen/NativePerformanceSpec.g.h +35 -7
  245. package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
  246. package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
  247. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
  248. package/codegen/NativeUIManagerSpec.g.h +5 -17
  249. package/codegen/react/components/rnwcore/Props.cpp +1 -1
  250. package/codegen/react/components/rnwcore/Props.h +16 -12
  251. package/codegen/react/components/rnwcore/States.h +0 -26
  252. package/codegen/rnwcoreJSI-generated.cpp +688 -463
  253. package/codegen/rnwcoreJSI.h +1374 -2867
  254. package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
  255. package/fmt/fmt.vcxproj +10 -2
  256. package/jest/mockComponent.js +7 -0
  257. package/jest/renderer.js +25 -14
  258. package/jest/setup.js +19 -13
  259. package/package.json +29 -27
  260. package/rn-get-polyfills.js +1 -0
  261. package/src/private/core/composeStyles.js +27 -0
  262. package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
  263. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  264. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
  265. package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
  266. package/src/private/specs/modules/NativeBlobModule.js +4 -2
  267. package/src/private/specs/modules/NativeDevSettings.js +1 -0
  268. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
  269. package/src/private/specs/modules/NativeUIManager.js +0 -7
  270. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
  271. package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
  272. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
  273. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
  274. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
  275. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  276. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  277. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
  278. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
  279. package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
  280. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  281. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  282. package/src/private/webapis/performance/EventCounts.js +1 -1
  283. package/src/private/webapis/performance/MemoryInfo.js +9 -9
  284. package/src/private/webapis/performance/Performance.js +10 -56
  285. package/src/private/webapis/performance/PerformanceObserver.js +30 -22
  286. package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
  287. package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
  288. package/src/private/webapis/performance/UserTiming.js +63 -0
  289. package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
  290. package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
  291. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
  292. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
  293. package/stubs/glog/logging.h +1 -0
  294. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  295. package/template/cs-lib/proj/MyLib.csproj +1 -1
  296. package/template/metro.config.js +13 -2
  297. package/templates/cpp-app/template.config.js +1 -1
  298. package/templates/cpp-lib/example/metro.config.js +2 -2
  299. package/templates/cpp-lib/template.config.js +1 -1
  300. package/templates/old/generateWrapper.js +4 -1
  301. package/types/modules/globals.d.ts +4 -0
  302. package/Libraries/Lists/FlatList.windows.js +0 -717
  303. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
  304. package/Libraries/Utilities/LoadingView.ios.js +0 -50
  305. package/Libraries/Utilities/LoadingView.js +0 -16
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2375
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  312. package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
  313. package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
  314. package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
  315. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
  316. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
  317. package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
  318. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
  319. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
  320. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
  321. package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
  322. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
  323. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
  324. package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
  325. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
  326. package/template/metro.devMode.config.js +0 -56
  327. /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
@@ -26,7 +26,8 @@ struct to_ascii_array {
26
26
  static constexpr data_type_ data_() {
27
27
  data_type_ result{};
28
28
  Alphabet alpha;
29
- for (size_t i = 0; i < Base; ++i) {
29
+ // [Windows #12703 - CodeQL patch]
30
+ for (uint64_t i = 0; i < Base; ++i) {
30
31
  result.data[i] = alpha(static_cast<uint8_t>(i));
31
32
  }
32
33
  return result;
@@ -63,7 +64,8 @@ struct to_ascii_table {
63
64
  static constexpr data_type_ data_() {
64
65
  data_type_ result{};
65
66
  Alphabet alpha;
66
- for (size_t i = 0; i < Base * Base; ++i) {
67
+ // [Windows #12703 - CodeQL patch]
68
+ for (uint64_t i = 0; i < Base * Base; ++i) {
67
69
  result.data[i] = //
68
70
  (alpha(uint8_t(i / Base)) << (kIsLittleEndian ? 0 : 8)) |
69
71
  (alpha(uint8_t(i % Base)) << (kIsLittleEndian ? 8 : 0));
@@ -315,6 +315,8 @@ const sequence = function (
315
315
  current++;
316
316
 
317
317
  if (current === animations.length) {
318
+ // if the start is called, even without a reset, it should start from the beginning
319
+ current = 0;
318
320
  callback && callback(result);
319
321
  return;
320
322
  }
@@ -455,18 +455,22 @@ function addWhitelistedInterpolationParam(param: string): void {
455
455
  }
456
456
 
457
457
  function isSupportedColorStyleProp(prop: string): boolean {
458
+ // $FlowFixMe[invalid-computed-prop]
458
459
  return SUPPORTED_COLOR_STYLES[prop] === true;
459
460
  }
460
461
 
461
462
  function isSupportedStyleProp(prop: string): boolean {
463
+ // $FlowFixMe[invalid-computed-prop]
462
464
  return SUPPORTED_STYLES[prop] === true;
463
465
  }
464
466
 
465
467
  function isSupportedTransformProp(prop: string): boolean {
468
+ // $FlowFixMe[invalid-computed-prop]
466
469
  return SUPPORTED_TRANSFORMS[prop] === true;
467
470
  }
468
471
 
469
472
  function isSupportedInterpolationParam(param: string): boolean {
473
+ // $FlowFixMe[invalid-computed-prop]
470
474
  return SUPPORTED_INTERPOLATION_PARAMS[param] === true;
471
475
  }
472
476
 
@@ -8,10 +8,12 @@
8
8
  * @format
9
9
  */
10
10
 
11
+ import composeStyles from '../../src/private/core/composeStyles';
11
12
  import View from '../Components/View/View';
12
13
  import useMergeRefs from '../Utilities/useMergeRefs';
13
14
  import useAnimatedProps from './useAnimatedProps';
14
15
  import * as React from 'react';
16
+ import {useMemo} from 'react';
15
17
 
16
18
  // $FlowFixMe[deprecated-type]
17
19
  export type AnimatedProps<Props: {...}> = $ObjMap<
@@ -44,14 +46,18 @@ export default function createAnimatedComponent<TProps: {...}, TInstance>(
44
46
  // without these passthrough values.
45
47
  // $FlowFixMe[prop-missing]
46
48
  const {passthroughAnimatedPropExplicitValues, style} = reducedProps;
47
- const {style: passthroughStyle, ...passthroughProps} =
48
- passthroughAnimatedPropExplicitValues ?? {};
49
- const mergedStyle = {...style, ...passthroughStyle};
49
+ const passthroughStyle = passthroughAnimatedPropExplicitValues?.style;
50
+ const mergedStyle = useMemo(
51
+ () => composeStyles(style, passthroughStyle),
52
+ [passthroughStyle, style],
53
+ );
50
54
 
55
+ // NOTE: It is important that `passthroughAnimatedPropExplicitValues` is
56
+ // spread after `reducedProps` but before `style`.
51
57
  return (
52
58
  <Component
53
59
  {...reducedProps}
54
- {...passthroughProps}
60
+ {...passthroughAnimatedPropExplicitValues}
55
61
  style={mergedStyle}
56
62
  ref={ref}
57
63
  />
@@ -74,46 +74,74 @@ export default function useAnimatedProps<TProps: {...}, TInstance>(
74
74
  // every animation frame. When using the native driver, this callback is
75
75
  // called when the animation completes.
76
76
  onUpdateRef.current = () => {
77
+ if (process.env.NODE_ENV === 'test') {
78
+ // Check 1: this is a test.
79
+ // call `scheduleUpdate` to bypass use of setNativeProps.
80
+ return scheduleUpdate();
81
+ }
82
+
83
+ const isFabricNode = isFabricInstance(instance);
84
+ if (node.__isNative) {
85
+ // Check 2: this is an animation driven by native.
86
+ // In native driven animations, this callback is only called once the animation completes.
87
+ if (isFabricNode) {
88
+ // Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
89
+ // Must not be called in Paper.
90
+ scheduleUpdate();
91
+ }
92
+ return;
93
+ }
94
+
77
95
  if (
78
- process.env.NODE_ENV === 'test' ||
79
96
  typeof instance !== 'object' ||
80
- typeof instance?.setNativeProps !== 'function' ||
81
- (isFabricInstance(instance) && !useNativePropsInFabric)
97
+ typeof instance?.setNativeProps !== 'function'
82
98
  ) {
83
- // Schedule an update for this component to update `reducedProps`,
84
- // but do not compute it immediately. If a parent also updated, we
85
- // need to merge those new props in before updating.
86
- scheduleUpdate();
87
- } else if (!node.__isNative) {
99
+ // Check 3: the instance does not support setNativeProps. Call `scheduleUpdate`.
100
+ return scheduleUpdate();
101
+ }
102
+
103
+ if (!isFabricNode) {
104
+ // Check 4: this is a paper instance, call setNativeProps.
88
105
  // $FlowIgnore[not-a-function] - Assume it's still a function.
89
106
  // $FlowFixMe[incompatible-use]
90
- instance.setNativeProps(node.__getAnimatedValue());
91
- if (isFabricInstance(instance)) {
92
- // Keeping state of Fiber tree and Shadow tree in sync.
93
- //
94
- // This is done by calling `scheduleUpdate` which will trigger a commit.
95
- // However, React commit is not fast enough to drive animations.
96
- // This is where setNativeProps comes in handy but the state between
97
- // Fiber tree and Shadow tree needs to be kept in sync.
98
- // The goal is to call `scheduleUpdate` as little as possible to maintain
99
- // performance but frequently enough to keep state in sync.
100
- // Debounce is set to 48ms, which is 3 * the duration of a frame.
101
- // 3 frames was the highest value where flickering state was not observed.
102
- if (timerRef.current != null) {
103
- clearTimeout(timerRef.current);
104
- }
105
- timerRef.current = setTimeout(() => {
106
- timerRef.current = null;
107
- scheduleUpdate();
108
- }, 48);
109
- }
107
+ return instance.setNativeProps(node.__getAnimatedValue());
108
+ }
109
+
110
+ if (!useNativePropsInFabric) {
111
+ // Check 5: setNativeProps are disabled.
112
+ return scheduleUpdate();
110
113
  }
114
+
115
+ // This is a Fabric instance and setNativeProps is supported.
116
+
117
+ // $FlowIgnore[not-a-function] - Assume it's still a function.
118
+ // $FlowFixMe[incompatible-use]
119
+ instance.setNativeProps(node.__getAnimatedValue());
120
+
121
+ // Keeping state of Fiber tree and Shadow tree in sync.
122
+ //
123
+ // This is done by calling `scheduleUpdate` which will trigger a commit.
124
+ // However, React commit is not fast enough to drive animations.
125
+ // This is where setNativeProps comes in handy but the state between
126
+ // Fiber tree and Shadow tree needs to be kept in sync.
127
+ // The goal is to call `scheduleUpdate` as little as possible to maintain
128
+ // performance but frequently enough to keep state in sync.
129
+ // Debounce is set to 48ms, which is 3 * the duration of a frame.
130
+ // 3 frames was the highest value where flickering state was not observed.
131
+ if (timerRef.current != null) {
132
+ clearTimeout(timerRef.current);
133
+ }
134
+ timerRef.current = setTimeout(() => {
135
+ timerRef.current = null;
136
+ scheduleUpdate();
137
+ }, 48);
111
138
  };
112
139
 
113
140
  const target = getEventTarget(instance);
114
141
  const events = [];
115
142
 
116
143
  for (const propName in props) {
144
+ // $FlowFixMe[invalid-computed-prop]
117
145
  const propValue = props[propName];
118
146
  if (propValue instanceof AnimatedEvent && propValue.__isNative) {
119
147
  propValue.__attach(target, propName);
@@ -424,6 +424,7 @@ class MessageQueue {
424
424
  A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.`,
425
425
  );
426
426
  }
427
+ // $FlowFixMe[invalid-computed-prop]
427
428
  if (!moduleMethods[method]) {
428
429
  invariant(
429
430
  false,
@@ -280,7 +280,13 @@ type ButtonProps = $ReadOnly<{|
280
280
  ```
281
281
  */
282
282
 
283
- const Button: React.AbstractComponent<ButtonProps> = (props: ButtonProps) => {
283
+ const Touchable: typeof TouchableNativeFeedback | typeof TouchableOpacity =
284
+ Platform.OS === 'android' ? TouchableNativeFeedback : TouchableOpacity;
285
+
286
+ const Button: React.AbstractComponent<
287
+ ButtonProps,
288
+ React.ElementRef<typeof Touchable>,
289
+ > = React.forwardRef((props: ButtonProps, ref) => {
284
290
  const {
285
291
  accessibilityLabel,
286
292
  accessibilityState,
@@ -345,8 +351,6 @@ const Button: React.AbstractComponent<ButtonProps> = (props: ButtonProps) => {
345
351
  );
346
352
  const formattedTitle =
347
353
  Platform.OS === 'android' ? title.toUpperCase() : title;
348
- const Touchable =
349
- Platform.OS === 'android' ? TouchableNativeFeedback : TouchableOpacity;
350
354
 
351
355
  // If `no` is specified for `importantForAccessibility`, it will be changed to `no-hide-descendants` because the text inside should not be focused.
352
356
  const _importantForAccessibility =
@@ -374,7 +378,8 @@ const Button: React.AbstractComponent<ButtonProps> = (props: ButtonProps) => {
374
378
  testID={testID}
375
379
  disabled={disabled}
376
380
  onPress={onPress}
377
- touchSoundDisabled={touchSoundDisabled}>
381
+ touchSoundDisabled={touchSoundDisabled}
382
+ ref={ref}>
378
383
  <View style={buttonStyles}>
379
384
  <Text style={textStyles} disabled={disabled}>
380
385
  {formattedTitle}
@@ -382,7 +387,7 @@ const Button: React.AbstractComponent<ButtonProps> = (props: ButtonProps) => {
382
387
  </View>
383
388
  </Touchable>
384
389
  );
385
- };
390
+ });
386
391
 
387
392
  Button.displayName = 'Button';
388
393
 
@@ -119,7 +119,7 @@ type Props = $ReadOnly<{|
119
119
  |}>;
120
120
 
121
121
  type State = {|
122
- statusBarBackgroundColor: ColorValue,
122
+ drawerOpened: boolean,
123
123
  |};
124
124
 
125
125
  /**
@@ -168,7 +168,9 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
168
168
  React.ElementRef<typeof AndroidDrawerLayoutNativeComponent>,
169
169
  >();
170
170
 
171
- state: State = {statusBarBackgroundColor: null};
171
+ state: State = {
172
+ drawerOpened: false,
173
+ };
172
174
 
173
175
  render(): React.Node {
174
176
  const {
@@ -189,6 +191,7 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
189
191
  backgroundColor: drawerBackgroundColor,
190
192
  },
191
193
  ]}
194
+ pointerEvents={this.state.drawerOpened ? 'auto' : 'none'}
192
195
  collapsable={false}>
193
196
  {renderNavigationView()}
194
197
  {drawStatusBar && <View style={styles.drawerStatusBar} />}
@@ -245,12 +248,18 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
245
248
  };
246
249
 
247
250
  _onDrawerOpen = () => {
251
+ this.setState({
252
+ drawerOpened: true,
253
+ });
248
254
  if (this.props.onDrawerOpen) {
249
255
  this.props.onDrawerOpen();
250
256
  }
251
257
  };
252
258
 
253
259
  _onDrawerClose = () => {
260
+ this.setState({
261
+ drawerOpened: false,
262
+ });
254
263
  if (this.props.onDrawerClose) {
255
264
  this.props.onDrawerClose();
256
265
  }
@@ -3,14 +3,13 @@
3
3
  * Licensed under the MIT License.
4
4
  * @format
5
5
  */
6
- 'use strict';
7
6
 
8
- import * as React from 'react';
7
+ import type {ViewProps} from 'react-native';
9
8
 
10
9
  import FlyoutNativeComponent from './FlyoutNativeComponent';
11
- import type {ViewProps} from '../View/ViewPropTypes';
12
- import {findNodeHandle} from '../../ReactNative/RendererProxy';
13
- import StyleSheet from '../../StyleSheet/StyleSheet';
10
+ import * as React from 'react';
11
+ import StyleSheet from 'react-native';
12
+ import {findNodeHandle} from 'react-native';
14
13
 
15
14
  type Placement =
16
15
  | 'top'
@@ -33,7 +32,7 @@ type ShowMode =
33
32
  | 'transient'
34
33
  | 'transient-with-dismiss-on-pointer-move-away';
35
34
 
36
- type Props = $ReadOnly<{|
35
+ type Props = $ReadOnly<{
37
36
  ...ViewProps,
38
37
 
39
38
  // Props
@@ -55,7 +54,7 @@ type Props = $ReadOnly<{|
55
54
  verticalOffset?: number,
56
55
 
57
56
  // Events
58
- |}>;
57
+ }>;
59
58
 
60
59
  const styles = StyleSheet.create({
61
60
  rctFlyout: {
@@ -63,10 +62,10 @@ const styles = StyleSheet.create({
63
62
  },
64
63
  });
65
64
 
66
- type State = $ReadOnly<{|
65
+ type State = $ReadOnly<{
67
66
  target?: number | null,
68
67
  targetRef?: React.ReactNode,
69
- |}>;
68
+ }>;
70
69
 
71
70
  /**
72
71
  * Renders a flyout component.
@@ -91,9 +90,10 @@ export class Flyout extends React.Component<Props, State> {
91
90
  return prevState;
92
91
  }
93
92
 
93
+ state = {target: undefined, targetRef: null};
94
+
94
95
  constructor(props: Props) {
95
96
  super(props);
96
- this.state = {target: undefined, targetRef: null};
97
97
  }
98
98
 
99
99
  render(): React.Node {
@@ -5,16 +5,17 @@
5
5
  * @format
6
6
  */
7
7
 
8
- import type {Double, DirectEventHandler, Int32} from '../../Types/CodegenTypes';
9
- import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
8
+ import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
10
9
  import type {HostComponent} from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';
11
- import type {ViewProps} from '../View/ViewPropTypes';
10
+ import type {DirectEventHandler, Double, Int32} from 'react-native/Libraries/Types/CodegenTypes';
11
+
12
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
12
13
 
13
- type DismissEvent = $ReadOnly<{|
14
+ type DismissEvent = $ReadOnly<{
14
15
  isOpen?: boolean,
15
- |}>;
16
+ }>;
16
17
 
17
- type NativeProps = $ReadOnly<{|
18
+ type NativeProps = $ReadOnly<{
18
19
  ...ViewProps,
19
20
 
20
21
  // Props
@@ -36,7 +37,7 @@ type NativeProps = $ReadOnly<{|
36
37
  verticalOffset?: Double,
37
38
 
38
39
  // Events
39
- |}>;
40
+ }>;
40
41
 
41
42
  type NativeType = HostComponent<NativeProps>;
42
43
 
@@ -195,13 +195,16 @@ type Props = $ReadOnly<{|
195
195
  'aria-label'?: ?string,
196
196
  |}>;
197
197
 
198
+ type Instance = React.ElementRef<typeof View>;
199
+
198
200
  /**
199
201
  * Component used to build display components that should respond to whether the
200
202
  * component is currently pressed or not.
201
203
  */
202
- /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
203
- * LTI update could not be added via codemod */
204
- function Pressable(props: Props, forwardedRef): React.Node {
204
+ function Pressable(
205
+ props: Props,
206
+ forwardedRef: React.RefSetter<Instance>,
207
+ ): React.Node {
205
208
  const {
206
209
  accessible,
207
210
  accessibilityState,
@@ -235,13 +238,16 @@ function Pressable(props: Props, forwardedRef): React.Node {
235
238
  ...restProps
236
239
  } = props;
237
240
 
238
- const viewRef = useRef<React.ElementRef<typeof View> | null>(null);
241
+ const viewRef = useRef<Instance | null>(null);
239
242
  const mergedRef = useMergeRefs(forwardedRef, viewRef);
240
243
 
241
244
  const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);
242
245
 
243
246
  const [pressed, setPressed] = usePressState(testOnly_pressed === true);
244
247
 
248
+ const shouldUpdatePressed =
249
+ typeof children === 'function' || typeof style === 'function';
250
+
245
251
  let _accessibilityState = {
246
252
  busy: ariaBusy ?? accessibilityState?.busy,
247
253
  checked: ariaChecked ?? accessibilityState?.checked,
@@ -297,7 +303,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
297
303
  if (android_rippleConfig != null) {
298
304
  android_rippleConfig.onPressIn(event);
299
305
  }
300
- setPressed(true);
306
+ shouldUpdatePressed && setPressed(true);
301
307
  if (onPressIn != null) {
302
308
  onPressIn(event);
303
309
  }
@@ -307,7 +313,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
307
313
  if (android_rippleConfig != null) {
308
314
  android_rippleConfig.onPressOut(event);
309
315
  }
310
- setPressed(false);
316
+ shouldUpdatePressed && setPressed(false);
311
317
  if (onPressOut != null) {
312
318
  onPressOut(event);
313
319
  }
@@ -330,6 +336,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
330
336
  onPressOut,
331
337
  pressRetentionOffset,
332
338
  setPressed,
339
+ shouldUpdatePressed,
333
340
  unstable_pressDelay,
334
341
  ],
335
342
  );
@@ -240,13 +240,16 @@ type Props = $ReadOnly<{|
240
240
  'aria-label'?: ?string,
241
241
  |}>;
242
242
 
243
+ type Instance = React.ElementRef<typeof View>;
244
+
243
245
  /**
244
246
  * Component used to build display components that should respond to whether the
245
247
  * component is currently pressed or not.
246
248
  */
247
- /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
248
- * LTI update could not be added via codemod */
249
- function Pressable(props: Props, forwardedRef): React.Node {
249
+ function Pressable(
250
+ props: Props,
251
+ forwardedRef: React.RefSetter<Instance>,
252
+ ): React.Node {
250
253
  const {
251
254
  accessible,
252
255
  accessibilityState,
@@ -286,13 +289,16 @@ function Pressable(props: Props, forwardedRef): React.Node {
286
289
  ...restProps
287
290
  } = props;
288
291
 
289
- const viewRef = useRef<React.ElementRef<typeof View> | null>(null);
292
+ const viewRef = useRef<Instance | null>(null);
290
293
  const mergedRef = useMergeRefs(forwardedRef, viewRef);
291
294
 
292
295
  const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);
293
296
 
294
297
  const [pressed, setPressed] = usePressState(testOnly_pressed === true);
295
298
 
299
+ const shouldUpdatePressed =
300
+ typeof children === 'function' || typeof style === 'function';
301
+
296
302
  let _accessibilityState = {
297
303
  busy: ariaBusy ?? accessibilityState?.busy,
298
304
  checked: ariaChecked ?? accessibilityState?.checked,
@@ -349,7 +355,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
349
355
  if (android_rippleConfig != null) {
350
356
  android_rippleConfig.onPressIn(event);
351
357
  }
352
- setPressed(true);
358
+ shouldUpdatePressed && setPressed(true);
353
359
  if (onPressIn != null) {
354
360
  onPressIn(event);
355
361
  }
@@ -359,7 +365,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
359
365
  if (android_rippleConfig != null) {
360
366
  android_rippleConfig.onPressOut(event);
361
367
  }
362
- setPressed(false);
368
+ shouldUpdatePressed && setPressed(false);
363
369
  if (onPressOut != null) {
364
370
  onPressOut(event);
365
371
  }
@@ -394,6 +400,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
394
400
  // Windows]
395
401
  pressRetentionOffset,
396
402
  setPressed,
403
+ shouldUpdatePressed,
397
404
  unstable_pressDelay,
398
405
  ],
399
406
  );
@@ -23,13 +23,17 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
23
23
  validAttributes: {
24
24
  decelerationRate: true,
25
25
  disableIntervalMomentum: true,
26
+ maintainVisibleContentPosition: true,
26
27
  endFillColor: {process: require('../../StyleSheet/processColor').default},
27
28
  fadingEdgeLength: true,
28
29
  nestedScrollEnabled: true,
29
30
  overScrollMode: true,
30
31
  pagingEnabled: true,
31
32
  persistentScrollbar: true,
33
+ horizontal: true,
34
+ enableSyncOnScroll: true,
32
35
  scrollEnabled: true,
36
+ scrollEventThrottle: true,
33
37
  scrollPerfTag: true,
34
38
  sendMomentumEvents: true,
35
39
  showsHorizontalScrollIndicator: true,