@office-iss/react-native-win32 0.73.2 → 0.74.0-preview.2

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 (475) hide show
  1. package/.eslintignore +1 -1
  2. package/.flowconfig +11 -3
  3. package/CHANGELOG.json +426 -54
  4. package/CHANGELOG.md +165 -30
  5. package/IntegrationTests/AccessibilityManagerTest.js +2 -2
  6. package/IntegrationTests/AppEventsTest.js +2 -2
  7. package/IntegrationTests/LayoutEventsTest.js +8 -10
  8. package/IntegrationTests/LoggingTestModule.js +1 -2
  9. package/IntegrationTests/websocket_integration_test_server.js +1 -1
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  11. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  12. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  13. package/Libraries/Alert/NativeAlertManager.js +4 -26
  14. package/Libraries/Animated/Animated.js +2 -2
  15. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  16. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  17. package/Libraries/Animated/NativeAnimatedHelper.win32.js +14 -11
  18. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  19. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  20. package/Libraries/Animated/animations/Animation.js +6 -22
  21. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  22. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  23. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  24. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  25. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  26. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  27. package/Libraries/Animated/useAnimatedProps.js +21 -1
  28. package/Libraries/AppState/NativeAppState.js +4 -24
  29. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  30. package/Libraries/Blob/Blob.js +1 -4
  31. package/Libraries/Blob/BlobManager.js +6 -8
  32. package/Libraries/Blob/File.js +1 -1
  33. package/Libraries/Blob/NativeBlobModule.js +4 -50
  34. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  35. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  36. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
  37. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +48 -7
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
  40. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  41. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  42. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +3 -2
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  44. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  45. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  46. package/Libraries/Components/Button/ButtonWin32.Props.js +2 -2
  47. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
  48. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  49. package/Libraries/Components/Button/ButtonWin32.js +82 -82
  50. package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
  51. package/Libraries/Components/Button.js +103 -107
  52. package/Libraries/Components/Button.win32.js +297 -301
  53. package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
  54. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  56. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  57. package/Libraries/Components/EnterString.win32.js +81 -81
  58. package/Libraries/Components/EnterString.win32.js.map +1 -1
  59. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  60. package/Libraries/Components/Pressable/Pressable.js +1 -1
  61. package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
  62. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  63. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  64. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  65. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  66. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  67. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  68. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  69. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  70. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  71. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  72. package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
  73. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  74. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  75. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  76. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  77. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  78. package/Libraries/Components/Switch/Switch.js +0 -2
  79. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  80. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  81. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  82. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  83. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  84. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  85. package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
  86. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
  87. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  88. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  89. package/Libraries/Components/TextInput/TextInput.js +65 -32
  90. package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
  91. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  92. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  93. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  94. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
  95. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  96. package/Libraries/Components/Touchable/Touchable.js +2 -3
  97. package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
  98. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  99. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  100. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  101. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
  102. package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
  103. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  104. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  105. package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
  106. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
  107. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  108. package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
  109. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  110. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  111. package/Libraries/Components/View/ReactNativeStyleAttributes.js +2 -1
  112. package/Libraries/Components/View/View.js +0 -11
  113. package/Libraries/Components/View/View.win32.js +18 -17
  114. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  115. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  116. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  117. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
  118. package/Libraries/Core/InitializeCore.js +1 -1
  119. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  120. package/Libraries/Core/ReactNativeVersion.js +12 -6
  121. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  122. package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
  123. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  124. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  125. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  126. package/Libraries/Core/registerCallableModule.js +42 -0
  127. package/Libraries/Core/setUpPerformance.js +2 -2
  128. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  129. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  130. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  131. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  132. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  133. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  134. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  135. package/Libraries/Image/AssetSourceResolver.js +5 -5
  136. package/Libraries/Image/AssetUtils.js +4 -5
  137. package/Libraries/Image/Image.android.js +146 -174
  138. package/Libraries/Image/Image.d.ts +1 -1
  139. package/Libraries/Image/Image.ios.js +53 -79
  140. package/Libraries/Image/Image.win32.js +52 -74
  141. package/Libraries/Image/ImageBackground.js +2 -2
  142. package/Libraries/Image/ImageInjection.js +76 -18
  143. package/Libraries/Image/ImageTypes.d.ts +25 -25
  144. package/Libraries/Image/ImageTypes.flow.js +71 -0
  145. package/Libraries/Image/ImageTypes.js +7 -7
  146. package/Libraries/Image/ImageTypes.js.map +1 -1
  147. package/Libraries/Image/ImageUtils.js +1 -1
  148. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  149. package/Libraries/Image/NativeImageEditor.js +3 -42
  150. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  151. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  152. package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
  153. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  154. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  155. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  156. package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
  157. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
  158. package/Libraries/Image/resolveAssetSource.js +59 -26
  159. package/Libraries/Inspector/ElementProperties.js +26 -52
  160. package/Libraries/Inspector/Inspector.js +122 -186
  161. package/Libraries/Inspector/Inspector.win32.js +118 -185
  162. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  163. package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
  164. package/Libraries/Inspector/InspectorPanel.js +3 -17
  165. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  166. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  167. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  168. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  169. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  170. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  171. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  172. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  173. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  174. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  175. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  176. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  177. package/Libraries/Lists/FillRateHelper.js +1 -1
  178. package/Libraries/Lists/FlatList.d.ts +2 -2
  179. package/Libraries/Lists/FlatList.js +6 -2
  180. package/Libraries/Lists/SectionList.d.ts +6 -1
  181. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  182. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  183. package/Libraries/Lists/VirtualizedList.js +1 -1
  184. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  185. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  186. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  187. package/Libraries/Modal/Modal.js +43 -11
  188. package/Libraries/Modal/NativeModalManager.js +3 -11
  189. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  190. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  191. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  192. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  193. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  194. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  195. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  196. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  197. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  198. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  199. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  200. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  201. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  202. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  203. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  204. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  205. package/Libraries/Network/FormData.js +3 -1
  206. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  207. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  208. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  209. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  210. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  211. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  212. package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
  213. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
  214. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  215. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
  216. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
  217. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  218. package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
  219. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
  220. package/Libraries/Pressability/Pressability.js +12 -2
  221. package/Libraries/Pressability/Pressability.win32.js +12 -2
  222. package/Libraries/Pressability/usePressability.js +7 -0
  223. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  224. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  225. package/Libraries/ReactNative/AppContainer-dev.js +211 -0
  226. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  227. package/Libraries/ReactNative/AppContainer.js +6 -149
  228. package/Libraries/ReactNative/AppRegistry.js +3 -1
  229. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  230. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  231. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  232. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  233. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  234. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  235. package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
  236. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  237. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  238. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  239. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  240. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  241. package/Libraries/ReactNative/UIManager.js +2 -23
  242. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  243. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  244. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  245. package/Libraries/ReactNative/renderApplication.js +9 -6
  246. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  247. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  248. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  249. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  250. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  251. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  252. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  253. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  254. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  255. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  256. package/Libraries/Share/NativeShareModule.js +3 -13
  257. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
  258. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  259. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
  260. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  261. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  262. package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
  263. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +51 -7
  264. package/Libraries/StyleSheet/StyleSheetTypes.js +19 -11
  265. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  266. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  267. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  268. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  269. package/Libraries/Text/Text.d.ts +5 -6
  270. package/Libraries/Text/Text.js +0 -6
  271. package/Libraries/Text/Text.win32.js +0 -6
  272. package/Libraries/Text/TextAncestor.js +2 -3
  273. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  274. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  275. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  276. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  277. package/Libraries/Utilities/Dimensions.js +8 -16
  278. package/Libraries/Utilities/Dimensions.win32.js +8 -16
  279. package/Libraries/Utilities/FocusManager.win32.js +2 -0
  280. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  281. package/Libraries/Utilities/NativeAppearance.js +3 -26
  282. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  283. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  284. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  285. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  286. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  287. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  288. package/Libraries/Utilities/Platform.android.js +4 -0
  289. package/Libraries/Utilities/Platform.d.ts +3 -0
  290. package/Libraries/Utilities/Platform.flow.js +7 -0
  291. package/Libraries/Utilities/Platform.flow.win32.js +18 -5
  292. package/Libraries/Utilities/Platform.ios.js +11 -0
  293. package/Libraries/Utilities/Platform.win32.js +9 -1
  294. package/Libraries/Utilities/binaryToBase64.js +1 -1
  295. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  296. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  297. package/Libraries/Utilities/useMergeRefs.js +5 -9
  298. package/Libraries/Vibration/NativeVibration.js +3 -14
  299. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  300. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  301. package/Libraries/platform-types.d.ts +2 -3
  302. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  303. package/babel.config.js +1 -1
  304. package/flow/jest.js +1 -1
  305. package/flow/react.js +15 -0
  306. package/index.js +61 -99
  307. package/index.win32.js +60 -101
  308. package/jest/assetFileTransformer.js +1 -1
  309. package/jest/local-setup.js +0 -5
  310. package/jest/mockModal.js +2 -1
  311. package/jest/mockScrollView.js +1 -2
  312. package/jest/renderer.js +1 -1
  313. package/jest/setup.js +6 -3
  314. package/jest.config.js +2 -1
  315. package/overrides.json +152 -131
  316. package/package.json +27 -26
  317. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  318. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  319. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  320. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  321. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  322. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  323. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  324. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  325. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  326. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  327. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  328. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  329. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  330. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  331. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  332. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  333. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  334. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  335. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  336. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
  337. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  338. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  339. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  340. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  341. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  342. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  343. package/src/private/specs/modules/NativeAppState.js +33 -0
  344. package/src/private/specs/modules/NativeAppearance.js +36 -0
  345. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  346. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  347. package/src/private/specs/modules/NativeClipboard.js +21 -0
  348. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  349. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  350. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  351. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  352. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  353. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  354. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  355. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  356. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  357. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  358. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  359. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  360. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  361. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  362. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  363. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  364. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  365. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  366. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  367. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  368. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  369. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  370. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  371. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  372. package/src/private/specs/modules/NativeLogBox.js +20 -0
  373. package/src/private/specs/modules/NativeModalManager.js +21 -0
  374. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  375. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  376. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  377. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  378. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  379. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  380. package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
  381. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  382. package/src/private/specs/modules/NativeRedBox.js +20 -0
  383. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  384. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  385. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  386. package/src/private/specs/modules/NativeShareModule.js +23 -0
  387. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  388. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  389. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  390. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  391. package/src/private/specs/modules/NativeTiming.js +26 -0
  392. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  393. package/src/private/specs/modules/NativeUIManager.js +118 -0
  394. package/src/private/specs/modules/NativeVibration.js +24 -0
  395. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  396. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  397. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  398. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  399. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  400. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  401. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  402. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  403. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  404. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  405. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  406. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  407. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  408. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  409. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  410. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  411. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  412. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  413. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  414. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  415. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  416. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
  417. package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
  418. package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
  419. package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  420. package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  421. package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  422. package/{src → src-win}/Libraries/Text/Text.d.ts +5 -6
  423. package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
  424. package/types/index.d.ts +1 -0
  425. package/types/modules/globals.d.ts +1 -0
  426. package/Libraries/Components/Button.flow.js +0 -265
  427. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  428. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
  429. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  430. package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
  431. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  432. package/Libraries/Components/Text/TextWin32.js +0 -18
  433. package/Libraries/Components/Text/TextWin32.js.map +0 -1
  434. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  435. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  436. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  437. package/Libraries/Image/Image.flow.js +0 -64
  438. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  439. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  440. package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
  441. package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
  442. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  443. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  444. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  445. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  446. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  447. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  448. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  449. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  450. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  451. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  452. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  453. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
  454. /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
  455. /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
  456. /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
  457. /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
  458. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
  459. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
  460. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
  461. /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
  462. /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
  463. /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
  464. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
  465. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  466. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  467. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  468. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  469. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  470. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  471. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
  472. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
  473. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
  474. /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
  475. /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
@@ -8,19 +8,6 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
12
- import type {ViewProps} from '../View/ViewPropTypes';
13
-
14
- import codegenNativeComponent from '../../Utilities/codegenNativeComponent';
15
-
16
- type NativeProps = $ReadOnly<{|
17
- ...ViewProps,
18
-
19
- removeClippedSubviews?: ?boolean,
20
- |}>;
21
-
22
- type NativeType = HostComponent<NativeProps>;
23
-
24
- export default (codegenNativeComponent<NativeProps>(
25
- 'AndroidHorizontalScrollContentView',
26
- ): NativeType);
11
+ export * from '../../../src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent';
12
+ import AndroidHorizontalScrollContentViewNativeComponent from '../../../src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent';
13
+ export default AndroidHorizontalScrollContentViewNativeComponent;
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  * @format
8
- * @flow
8
+ * @flow strict-local
9
9
  */
10
10
 
11
11
  import type {
@@ -481,12 +481,12 @@ export interface ScrollViewPropsIOS {
481
481
  pinchGestureEnabled?: boolean | undefined;
482
482
 
483
483
  /**
484
- * This controls how often the scroll event will be fired while scrolling (as a time interval in ms).
485
- * A lower number yields better accuracy for code that is tracking the scroll position,
486
- * but can lead to scroll performance problems due to the volume of information being sent over the bridge.
487
- * The default value is zero, which means the scroll event will be sent only once each time the view is scrolled.
484
+ * Limits how often scroll events will be fired while scrolling, specified as
485
+ * a time interval in ms. This may be useful when expensive work is performed
486
+ * in response to scrolling. Values <= `16` will disable throttling,
487
+ * regardless of the refresh rate of the device.
488
488
  */
489
- scrollEventThrottle?: number | undefined; // null
489
+ scrollEventThrottle?: number | undefined;
490
490
 
491
491
  /**
492
492
  * The amount by which the scroll view indicators are inset from the edges of the scroll view.
@@ -663,7 +663,6 @@ export interface ScrollViewProps
663
663
 
664
664
  /**
665
665
  * Fires at most once per frame during scrolling.
666
- * The frequency of the events can be contolled using the scrollEventThrottle prop.
667
666
  */
668
667
  onScroll?:
669
668
  | ((event: NativeSyntheticEvent<NativeScrollEvent>) => void)
@@ -515,8 +515,7 @@ export type Props = $ReadOnly<{|
515
515
  onMomentumScrollEnd?: ?(event: ScrollEvent) => void,
516
516
 
517
517
  /**
518
- * Fires at most once per frame during scrolling. The frequency of the
519
- * events can be controlled using the `scrollEventThrottle` prop.
518
+ * Fires at most once per frame during scrolling.
520
519
  */
521
520
  onScroll?: ?(event: ScrollEvent) => void,
522
521
  /**
@@ -546,8 +545,6 @@ export type Props = $ReadOnly<{|
546
545
  * When true, the scroll view stops on multiples of the scroll view's size
547
546
  * when scrolling. This can be used for horizontal pagination. The default
548
547
  * value is false.
549
- *
550
- * Note: Vertical pagination is not supported on Android.
551
548
  */
552
549
  pagingEnabled?: ?boolean,
553
550
  /**
@@ -558,19 +555,10 @@ export type Props = $ReadOnly<{|
558
555
  */
559
556
  scrollEnabled?: ?boolean,
560
557
  /**
561
- * This controls how often the scroll event will be fired while scrolling
562
- * (as a time interval in ms). A lower number yields better accuracy for code
563
- * that is tracking the scroll position, but can lead to scroll performance
564
- * problems due to the volume of information being send over the bridge.
565
- *
566
- * Values between 0 and 17ms indicate 60fps updates are needed and throttling
567
- * will be disabled.
568
- *
569
- * If you do not need precise scroll position tracking, set this value higher
570
- * to limit the information being sent across the bridge.
571
- *
572
- * The default value is zero, which results in the scroll event being sent only
573
- * once each time the view is scrolled.
558
+ * Limits how often scroll events will be fired while scrolling, specified as
559
+ * a time interval in ms. This may be useful when expensive work is performed
560
+ * in response to scrolling. Values <= `16` will disable throttling,
561
+ * regardless of the refresh rate of the device.
574
562
  */
575
563
  scrollEventThrottle?: ?number,
576
564
  /**
@@ -1150,21 +1138,6 @@ class ScrollView extends React.Component<Props, State> {
1150
1138
  }
1151
1139
 
1152
1140
  _handleScroll = (e: ScrollEvent) => {
1153
- if (__DEV__) {
1154
- if (
1155
- this.props.onScroll &&
1156
- this.props.scrollEventThrottle == null &&
1157
- Platform.OS === 'ios'
1158
- ) {
1159
- console.log(
1160
- 'You specified `onScroll` on a <ScrollView> but not ' +
1161
- '`scrollEventThrottle`. You will only receive one event. ' +
1162
- 'Using `16` you get all the events but be aware that it may ' +
1163
- "cause frame drops, use a bigger number if you don't need as " +
1164
- 'much precision.',
1165
- );
1166
- }
1167
- }
1168
1141
  this._observedScrollSinceBecomingResponder = true;
1169
1142
  this.props.onScroll && this.props.onScroll(e);
1170
1143
  };
@@ -1685,13 +1658,14 @@ class ScrollView extends React.Component<Props, State> {
1685
1658
 
1686
1659
  const {stickyHeaderIndices} = this.props;
1687
1660
  let children = this.props.children;
1661
+ /**
1662
+ * This function can cause unnecessary remount when nested in conditionals as it causes remap of children keys.
1663
+ * https://react.dev/reference/react/Children#children-toarray-caveats
1664
+ */
1665
+ children = React.Children.toArray<$FlowFixMe>(children);
1688
1666
 
1689
1667
  if (stickyHeaderIndices != null && stickyHeaderIndices.length > 0) {
1690
- const childArray = React.Children.toArray<$FlowFixMe>(
1691
- this.props.children,
1692
- );
1693
-
1694
- children = childArray.map((child, index) => {
1668
+ children = children.map((child, index) => {
1695
1669
  const indexOfIndex = child ? stickyHeaderIndices.indexOf(index) : -1;
1696
1670
  if (indexOfIndex > -1) {
1697
1671
  const key = child.key;
@@ -1703,7 +1677,7 @@ class ScrollView extends React.Component<Props, State> {
1703
1677
  key={key}
1704
1678
  ref={ref => this._setStickyHeaderRef(key, ref)}
1705
1679
  nextHeaderLayoutY={this._headerLayoutYs.get(
1706
- this._getKeyForIndex(nextIndex, childArray),
1680
+ this._getKeyForIndex(nextIndex, children),
1707
1681
  )}
1708
1682
  onLayout={event => this._onStickyHeaderLayout(index, event, key)}
1709
1683
  scrollAnimatedValue={this._scrollAnimatedValue}
@@ -515,8 +515,7 @@ export type Props = $ReadOnly<{|
515
515
  onMomentumScrollEnd?: ?(event: ScrollEvent) => void,
516
516
 
517
517
  /**
518
- * Fires at most once per frame during scrolling. The frequency of the
519
- * events can be controlled using the `scrollEventThrottle` prop.
518
+ * Fires at most once per frame during scrolling.
520
519
  */
521
520
  onScroll?: ?(event: ScrollEvent) => void,
522
521
  /**
@@ -546,8 +545,6 @@ export type Props = $ReadOnly<{|
546
545
  * When true, the scroll view stops on multiples of the scroll view's size
547
546
  * when scrolling. This can be used for horizontal pagination. The default
548
547
  * value is false.
549
- *
550
- * Note: Vertical pagination is not supported on Android.
551
548
  */
552
549
  pagingEnabled?: ?boolean,
553
550
  /**
@@ -558,19 +555,10 @@ export type Props = $ReadOnly<{|
558
555
  */
559
556
  scrollEnabled?: ?boolean,
560
557
  /**
561
- * This controls how often the scroll event will be fired while scrolling
562
- * (as a time interval in ms). A lower number yields better accuracy for code
563
- * that is tracking the scroll position, but can lead to scroll performance
564
- * problems due to the volume of information being send over the bridge.
565
- *
566
- * Values between 0 and 17ms indicate 60fps updates are needed and throttling
567
- * will be disabled.
568
- *
569
- * If you do not need precise scroll position tracking, set this value higher
570
- * to limit the information being sent across the bridge.
571
- *
572
- * The default value is zero, which results in the scroll event being sent only
573
- * once each time the view is scrolled.
558
+ * Limits how often scroll events will be fired while scrolling, specified as
559
+ * a time interval in ms. This may be useful when expensive work is performed
560
+ * in response to scrolling. Values <= `16` will disable throttling,
561
+ * regardless of the refresh rate of the device.
574
562
  */
575
563
  scrollEventThrottle?: ?number,
576
564
  /**
@@ -1150,21 +1138,6 @@ class ScrollView extends React.Component<Props, State> {
1150
1138
  }
1151
1139
 
1152
1140
  _handleScroll = (e: ScrollEvent) => {
1153
- if (__DEV__) {
1154
- if (
1155
- this.props.onScroll &&
1156
- this.props.scrollEventThrottle == null &&
1157
- Platform.OS === 'ios'
1158
- ) {
1159
- console.log(
1160
- 'You specified `onScroll` on a <ScrollView> but not ' +
1161
- '`scrollEventThrottle`. You will only receive one event. ' +
1162
- 'Using `16` you get all the events but be aware that it may ' +
1163
- "cause frame drops, use a bigger number if you don't need as " +
1164
- 'much precision.',
1165
- );
1166
- }
1167
- }
1168
1141
  this._observedScrollSinceBecomingResponder = true;
1169
1142
  this.props.onScroll && this.props.onScroll(e);
1170
1143
  };
@@ -1685,13 +1658,14 @@ class ScrollView extends React.Component<Props, State> {
1685
1658
 
1686
1659
  const {stickyHeaderIndices} = this.props;
1687
1660
  let children = this.props.children;
1661
+ /**
1662
+ * This function can cause unnecessary remount when nested in conditionals as it causes remap of children keys.
1663
+ * https://react.dev/reference/react/Children#children-toarray-caveats
1664
+ */
1665
+ children = React.Children.toArray<$FlowFixMe>(children);
1688
1666
 
1689
1667
  if (stickyHeaderIndices != null && stickyHeaderIndices.length > 0) {
1690
- const childArray = React.Children.toArray<$FlowFixMe>(
1691
- this.props.children,
1692
- );
1693
-
1694
- children = childArray.map((child, index) => {
1668
+ children = children.map((child, index) => {
1695
1669
  const indexOfIndex = child ? stickyHeaderIndices.indexOf(index) : -1;
1696
1670
  if (indexOfIndex > -1) {
1697
1671
  const key = child.key;
@@ -1703,7 +1677,7 @@ class ScrollView extends React.Component<Props, State> {
1703
1677
  key={key}
1704
1678
  ref={ref => this._setStickyHeaderRef(key, ref)}
1705
1679
  nextHeaderLayoutY={this._headerLayoutYs.get(
1706
- this._getKeyForIndex(nextIndex, childArray),
1680
+ this._getKeyForIndex(nextIndex, children),
1707
1681
  )}
1708
1682
  onLayout={event => this._onStickyHeaderLayout(index, event, key)}
1709
1683
  scrollAnimatedValue={this._scrollAnimatedValue}
@@ -67,8 +67,7 @@ const ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<
67
67
  }, []);
68
68
  const ref: (React.ElementRef<typeof Animated.View> | null) => void =
69
69
  // $FlowFixMe[incompatible-type] - Ref is mutated by `callbackRef`.
70
- // $FlowFixMe[incompatible-call]
71
- useMergeRefs<Instance | null>(callbackRef, forwardedRef);
70
+ useMergeRefs<Instance>(callbackRef, forwardedRef);
72
71
 
73
72
  const offset = useMemo(
74
73
  () =>
@@ -8,15 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {TurboModule} from '../../TurboModule/RCTExport';
12
-
13
- import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';
14
-
15
- /**
16
- * Native Module used for playing sounds in native platform.
17
- */
18
- export interface Spec extends TurboModule {
19
- +playTouchSound: () => void;
20
- }
21
-
22
- export default (TurboModuleRegistry.get<Spec>('SoundManager'): ?Spec);
11
+ export * from '../../../src/private/specs/modules/NativeSoundManager';
12
+ import NativeSoundManager from '../../../src/private/specs/modules/NativeSoundManager';
13
+ export default NativeSoundManager;
@@ -8,61 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {TurboModule} from '../../TurboModule/RCTExport';
12
-
13
- import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';
14
-
15
- export interface Spec extends TurboModule {
16
- +getConstants: () => {|
17
- +HEIGHT: number,
18
- +DEFAULT_BACKGROUND_COLOR: number,
19
- |};
20
- +setColor: (color: number, animated: boolean) => void;
21
- +setTranslucent: (translucent: boolean) => void;
22
-
23
- /**
24
- * - statusBarStyles can be:
25
- * - 'default'
26
- * - 'dark-content'
27
- */
28
- +setStyle: (statusBarStyle?: ?string) => void;
29
- +setHidden: (hidden: boolean) => void;
30
- }
31
-
32
- const NativeModule = TurboModuleRegistry.getEnforcing<Spec>('StatusBarManager');
33
- let constants = null;
34
-
35
- const NativeStatusBarManager = {
36
- getConstants(): {|
37
- +HEIGHT: number,
38
- +DEFAULT_BACKGROUND_COLOR?: number,
39
- |} {
40
- if (constants == null) {
41
- constants = NativeModule.getConstants();
42
- }
43
- return constants;
44
- },
45
-
46
- setColor(color: number, animated: boolean): void {
47
- NativeModule.setColor(color, animated);
48
- },
49
-
50
- setTranslucent(translucent: boolean): void {
51
- NativeModule.setTranslucent(translucent);
52
- },
53
-
54
- /**
55
- * - statusBarStyles can be:
56
- * - 'default'
57
- * - 'dark-content'
58
- */
59
- setStyle(statusBarStyle?: ?string): void {
60
- NativeModule.setStyle(statusBarStyle);
61
- },
62
-
63
- setHidden(hidden: boolean): void {
64
- NativeModule.setHidden(hidden);
65
- },
66
- };
67
-
68
- export default NativeStatusBarManager;
11
+ export * from '../../../src/private/specs/modules/NativeStatusBarManagerAndroid';
12
+ import NativeStatusBarManagerAndroid from '../../../src/private/specs/modules/NativeStatusBarManagerAndroid';
13
+ export default NativeStatusBarManagerAndroid;
@@ -8,82 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {TurboModule} from '../../TurboModule/RCTExport';
12
-
13
- import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';
14
-
15
- export interface Spec extends TurboModule {
16
- +getConstants: () => {|
17
- +HEIGHT: number,
18
- +DEFAULT_BACKGROUND_COLOR?: number,
19
- |};
20
-
21
- // TODO(T47754272) Can we remove this method?
22
- +getHeight: (callback: (result: {|height: number|}) => void) => void;
23
- +setNetworkActivityIndicatorVisible: (visible: boolean) => void;
24
- +addListener: (eventType: string) => void;
25
- +removeListeners: (count: number) => void;
26
-
27
- /**
28
- * - statusBarStyles can be:
29
- * - 'default'
30
- * - 'dark-content'
31
- * - 'light-content'
32
- */
33
- +setStyle: (statusBarStyle?: ?string, animated: boolean) => void;
34
- /**
35
- * - withAnimation can be: 'none' | 'fade' | 'slide'
36
- */
37
- +setHidden: (hidden: boolean, withAnimation: string) => void;
38
- }
39
-
40
- const NativeModule = TurboModuleRegistry.getEnforcing<Spec>('StatusBarManager');
41
- let constants = null;
42
-
43
- const NativeStatusBarManager = {
44
- getConstants(): {|
45
- +HEIGHT: number,
46
- +DEFAULT_BACKGROUND_COLOR?: number,
47
- |} {
48
- if (constants == null) {
49
- constants = NativeModule.getConstants();
50
- }
51
- return constants;
52
- },
53
-
54
- // TODO(T47754272) Can we remove this method?
55
- getHeight(callback: (result: {|height: number|}) => void): void {
56
- NativeModule.getHeight(callback);
57
- },
58
-
59
- setNetworkActivityIndicatorVisible(visible: boolean): void {
60
- NativeModule.setNetworkActivityIndicatorVisible(visible);
61
- },
62
-
63
- addListener(eventType: string): void {
64
- NativeModule.addListener(eventType);
65
- },
66
-
67
- removeListeners(count: number): void {
68
- NativeModule.removeListeners(count);
69
- },
70
-
71
- /**
72
- * - statusBarStyles can be:
73
- * - 'default'
74
- * - 'dark-content'
75
- * - 'light-content'
76
- */
77
- setStyle(statusBarStyle?: ?string, animated: boolean): void {
78
- NativeModule.setStyle(statusBarStyle, animated);
79
- },
80
-
81
- /**
82
- * - withAnimation can be: 'none' | 'fade' | 'slide'
83
- */
84
- setHidden(hidden: boolean, withAnimation: string): void {
85
- NativeModule.setHidden(hidden, withAnimation);
86
- },
87
- };
88
-
89
- export default NativeStatusBarManager;
11
+ export * from '../../../src/private/specs/modules/NativeStatusBarManagerIOS';
12
+ import NativeStatusBarManagerIOS from '../../../src/private/specs/modules/NativeStatusBarManagerIOS';
13
+ export default NativeStatusBarManagerIOS;
@@ -4,59 +4,10 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow strict-local
8
7
  * @format
8
+ * @flow strict-local
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
12
- import type {ColorValue} from '../../StyleSheet/StyleSheet';
13
- import type {
14
- BubblingEventHandler,
15
- Int32,
16
- WithDefault,
17
- } from '../../Types/CodegenTypes';
18
- import type {ViewProps} from '../View/ViewPropTypes';
19
-
20
- import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
21
- import codegenNativeComponent from '../../Utilities/codegenNativeComponent';
22
- import * as React from 'react';
23
-
24
- type SwitchChangeEvent = $ReadOnly<{|
25
- value: boolean,
26
- target: Int32,
27
- |}>;
28
-
29
- type NativeProps = $ReadOnly<{|
30
- ...ViewProps,
31
-
32
- // Props
33
- disabled?: WithDefault<boolean, false>,
34
- enabled?: WithDefault<boolean, true>,
35
- thumbColor?: ?ColorValue,
36
- trackColorForFalse?: ?ColorValue,
37
- trackColorForTrue?: ?ColorValue,
38
- value?: WithDefault<boolean, false>,
39
- on?: WithDefault<boolean, false>,
40
- thumbTintColor?: ?ColorValue,
41
- trackTintColor?: ?ColorValue,
42
-
43
- // Events
44
- onChange?: BubblingEventHandler<SwitchChangeEvent>,
45
- |}>;
46
-
47
- type NativeType = HostComponent<NativeProps>;
48
-
49
- interface NativeCommands {
50
- +setNativeValue: (
51
- viewRef: React.ElementRef<NativeType>,
52
- value: boolean,
53
- ) => void;
54
- }
55
-
56
- export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
57
- supportedCommands: ['setNativeValue'],
58
- });
59
-
60
- export default (codegenNativeComponent<NativeProps>('AndroidSwitch', {
61
- interfaceOnly: true,
62
- }): NativeType);
11
+ export * from '../../../src/private/specs/components/AndroidSwitchNativeComponent';
12
+ import AndroidSwitchNativeComponent from '../../../src/private/specs/components/AndroidSwitchNativeComponent';
13
+ export default AndroidSwitchNativeComponent;
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * @flow strict-local
8
8
  * @format
9
- * @generate-docs
10
9
  */
11
10
 
12
11
  import type {ColorValue} from '../../StyleSheet/StyleSheet';
@@ -155,7 +154,6 @@ const SwitchWithForwardedRef: React.AbstractComponent<
155
154
  typeof SwitchNativeComponent | typeof AndroidSwitchNativeComponent,
156
155
  > | null>(null);
157
156
 
158
- // $FlowFixMe[incompatible-call]
159
157
  const ref = useMergeRefs(nativeSwitchRef, forwardedRef);
160
158
 
161
159
  const [native, setNative] = React.useState({value: (null: ?boolean)});
@@ -4,58 +4,10 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow strict-local
8
7
  * @format
8
+ * @flow strict-local
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
12
- import type {ColorValue} from '../../StyleSheet/StyleSheet';
13
- import type {
14
- BubblingEventHandler,
15
- Int32,
16
- WithDefault,
17
- } from '../../Types/CodegenTypes';
18
- import type {ViewProps} from '../View/ViewPropTypes';
19
-
20
- import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
21
- import codegenNativeComponent from '../../Utilities/codegenNativeComponent';
22
- import * as React from 'react';
23
-
24
- type SwitchChangeEvent = $ReadOnly<{|
25
- value: boolean,
26
- target: Int32,
27
- |}>;
28
-
29
- type NativeProps = $ReadOnly<{|
30
- ...ViewProps,
31
-
32
- // Props
33
- disabled?: WithDefault<boolean, false>,
34
- value?: WithDefault<boolean, false>,
35
- tintColor?: ?ColorValue,
36
- onTintColor?: ?ColorValue,
37
- thumbTintColor?: ?ColorValue,
38
-
39
- // Deprecated props
40
- thumbColor?: ?ColorValue,
41
- trackColorForFalse?: ?ColorValue,
42
- trackColorForTrue?: ?ColorValue,
43
-
44
- // Events
45
- onChange?: ?BubblingEventHandler<SwitchChangeEvent>,
46
- |}>;
47
-
48
- type ComponentType = HostComponent<NativeProps>;
49
-
50
- interface NativeCommands {
51
- +setValue: (viewRef: React.ElementRef<ComponentType>, value: boolean) => void;
52
- }
53
-
54
- export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
55
- supportedCommands: ['setValue'],
56
- });
57
-
58
- export default (codegenNativeComponent<NativeProps>('Switch', {
59
- paperComponentName: 'RCTSwitch',
60
- excludedPlatforms: ['android'],
61
- }): ComponentType);
11
+ export * from '../../../src/private/specs/components/SwitchNativeComponent';
12
+ import SwitchNativeComponent from '../../../src/private/specs/components/SwitchNativeComponent';
13
+ export default SwitchNativeComponent;
@@ -485,6 +485,11 @@ export type NativeProps = $ReadOnly<{|
485
485
  */
486
486
  selectionColor?: ?ColorValue,
487
487
 
488
+ /**
489
+ * The text selection handle color.
490
+ */
491
+ selectionHandleColor?: ?ColorValue,
492
+
488
493
  /**
489
494
  * The start and end of the text input's selection. Set start and end to
490
495
  * the same value to position the cursor.
@@ -692,6 +697,9 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
692
697
  fontStyle: true,
693
698
  textShadowOffset: true,
694
699
  selectionColor: {process: require('../../StyleSheet/processColor').default},
700
+ selectionHandleColor: {
701
+ process: require('../../StyleSheet/processColor').default,
702
+ },
695
703
  placeholderTextColor: {
696
704
  process: require('../../StyleSheet/processColor').default,
697
705
  },
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
@@ -85,27 +85,25 @@ type Props = $ReadOnly<{|
85
85
  backgroundColor?: ?ColorValue,
86
86
  |}>;
87
87
 
88
- class InputAccessoryView extends React.Component<Props> {
89
- render(): React.Node {
90
- if (Platform.OS === 'ios') {
91
- if (React.Children.count(this.props.children) === 0) {
92
- return null;
93
- }
94
-
95
- return (
96
- <RCTInputAccessoryViewNativeComponent
97
- style={[this.props.style, styles.container]}
98
- nativeID={this.props.nativeID}
99
- backgroundColor={this.props.backgroundColor}>
100
- {this.props.children}
101
- </RCTInputAccessoryViewNativeComponent>
102
- );
103
- } else {
104
- console.warn('<InputAccessoryView> is only supported on iOS.');
88
+ const InputAccessoryView: React.AbstractComponent<Props> = (props: Props) => {
89
+ if (Platform.OS === 'ios') {
90
+ if (React.Children.count(props.children) === 0) {
105
91
  return null;
106
92
  }
93
+
94
+ return (
95
+ <RCTInputAccessoryViewNativeComponent
96
+ style={[props.style, styles.container]}
97
+ nativeID={props.nativeID}
98
+ backgroundColor={props.backgroundColor}>
99
+ {props.children}
100
+ </RCTInputAccessoryViewNativeComponent>
101
+ );
102
+ } else {
103
+ console.warn('<InputAccessoryView> is only supported on iOS.');
104
+ return null;
107
105
  }
108
- }
106
+ };
109
107
 
110
108
  const styles = StyleSheet.create({
111
109
  container: {
@@ -113,4 +111,4 @@ const styles = StyleSheet.create({
113
111
  },
114
112
  });
115
113
 
116
- module.exports = InputAccessoryView;
114
+ export default InputAccessoryView;