@react-native-oh/react-native-harmony 0.72.82 → 0.77.18-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 (1069) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSE-Meta +21 -0
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +87 -0
  4. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +175 -0
  5. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +13 -0
  6. package/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +34 -0
  7. package/Libraries/Alert/Alert.d.ts +91 -0
  8. package/Libraries/Alert/Alert.js +181 -0
  9. package/Libraries/Alert/NativeAlertManager.js +13 -0
  10. package/Libraries/Alert/RCTAlertManager.android.js +27 -0
  11. package/Libraries/Alert/RCTAlertManager.ios.js +25 -0
  12. package/Libraries/Alert/RCTAlertManager.js.flow +18 -0
  13. package/Libraries/Alert/delegates/AlertDelegate.harmony.ts +84 -0
  14. package/Libraries/Alert/delegates/AlertDelegate.ts +33 -0
  15. package/Libraries/Alert/{AlertManager.ts → delegates/AlertManager.harmony.ts} +10 -4
  16. package/Libraries/Alert/delegates/BaseAlertDelegate.ts +37 -0
  17. package/Libraries/Animated/Animated.d.ts +626 -0
  18. package/Libraries/Animated/Animated.js +48 -0
  19. package/Libraries/Animated/AnimatedEvent.js +256 -0
  20. package/Libraries/Animated/AnimatedImplementation.js +754 -0
  21. package/Libraries/Animated/AnimatedMock.js +195 -0
  22. package/Libraries/Animated/AnimatedPlatformConfig.js +13 -0
  23. package/Libraries/Animated/AnimatedWeb.js +26 -0
  24. package/Libraries/Animated/Easing.d.ts +37 -0
  25. package/Libraries/Animated/Easing.js +250 -0
  26. package/Libraries/Animated/NativeAnimatedAllowlist.js +122 -0
  27. package/Libraries/Animated/NativeAnimatedModule.js +13 -0
  28. package/Libraries/Animated/NativeAnimatedTurboModule.js +13 -0
  29. package/Libraries/Animated/SpringConfig.js +98 -0
  30. package/Libraries/Animated/animations/Animation.js +171 -0
  31. package/Libraries/Animated/animations/DecayAnimation.js +121 -0
  32. package/Libraries/Animated/animations/SpringAnimation.js +372 -0
  33. package/Libraries/Animated/animations/TimingAnimation.js +173 -0
  34. package/Libraries/Animated/bezier.js +164 -0
  35. package/Libraries/Animated/components/AnimatedFlatList.js +20 -0
  36. package/Libraries/Animated/components/AnimatedImage.js +22 -0
  37. package/Libraries/Animated/components/AnimatedScrollView.js +137 -0
  38. package/Libraries/Animated/components/AnimatedSectionList.js +22 -0
  39. package/Libraries/Animated/components/AnimatedText.js +22 -0
  40. package/Libraries/Animated/components/AnimatedView.js +20 -0
  41. package/Libraries/Animated/createAnimatedComponent.js +101 -0
  42. package/Libraries/Animated/nodes/AnimatedAddition.js +64 -0
  43. package/Libraries/Animated/nodes/AnimatedColor.js +320 -0
  44. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +72 -0
  45. package/Libraries/Animated/nodes/AnimatedDivision.js +80 -0
  46. package/Libraries/Animated/nodes/AnimatedInterpolation.js +416 -0
  47. package/Libraries/Animated/nodes/AnimatedModulo.js +63 -0
  48. package/Libraries/Animated/nodes/AnimatedMultiplication.js +63 -0
  49. package/Libraries/Animated/nodes/AnimatedNode.js +200 -0
  50. package/Libraries/Animated/nodes/AnimatedObject.js +162 -0
  51. package/Libraries/Animated/nodes/AnimatedProps.js +281 -0
  52. package/Libraries/Animated/nodes/AnimatedStyle.js +251 -0
  53. package/Libraries/Animated/nodes/AnimatedSubtraction.js +64 -0
  54. package/Libraries/Animated/nodes/AnimatedTracking.js +100 -0
  55. package/Libraries/Animated/nodes/AnimatedTransform.js +198 -0
  56. package/Libraries/Animated/nodes/AnimatedValue.js +303 -0
  57. package/Libraries/Animated/nodes/AnimatedValueXY.js +236 -0
  58. package/Libraries/Animated/nodes/AnimatedWithChildren.js +85 -0
  59. package/Libraries/Animated/shouldUseTurboAnimatedModule.harmony.ts +10 -0
  60. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  61. package/Libraries/Animated/useAnimatedProps.js +389 -0
  62. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  63. package/Libraries/Animated/useAnimatedValue.js +25 -0
  64. package/Libraries/AppDelegate/RCTAppDelegate+Protected.h +16 -0
  65. package/Libraries/AppDelegate/RCTAppDelegate.h +122 -0
  66. package/Libraries/AppDelegate/RCTAppDelegate.mm +330 -0
  67. package/Libraries/AppDelegate/RCTAppSetupUtils.h +59 -0
  68. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +167 -0
  69. package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +32 -0
  70. package/Libraries/AppDelegate/RCTDependencyProvider.h +26 -0
  71. package/Libraries/AppDelegate/RCTRootViewFactory.h +198 -0
  72. package/Libraries/AppDelegate/RCTRootViewFactory.mm +310 -0
  73. package/Libraries/AppDelegate/RCTUIConfiguratorProtocol.h +56 -0
  74. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +99 -0
  75. package/Libraries/AppState/AppState.d.ts +58 -0
  76. package/Libraries/AppState/AppState.js +128 -0
  77. package/Libraries/AppState/NativeAppState.js +13 -0
  78. package/Libraries/BatchedBridge/BatchedBridge.js +28 -0
  79. package/Libraries/BatchedBridge/MessageQueue.js +492 -0
  80. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  81. package/Libraries/BatchedBridge/NativeModules.js +212 -0
  82. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +38 -0
  83. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +22 -0
  84. package/Libraries/Blob/Blob.js +158 -0
  85. package/Libraries/Blob/BlobManager.js +179 -0
  86. package/Libraries/Blob/BlobRegistry.js +43 -0
  87. package/Libraries/Blob/BlobTypes.js +30 -0
  88. package/Libraries/Blob/File.js +55 -0
  89. package/Libraries/Blob/FileReader.js +186 -0
  90. package/Libraries/Blob/NativeBlobModule.js +13 -0
  91. package/Libraries/Blob/NativeFileReaderModule.js +13 -0
  92. package/Libraries/Blob/RCTBlobCollector.h +26 -0
  93. package/Libraries/Blob/RCTBlobCollector.mm +57 -0
  94. package/Libraries/Blob/RCTBlobManager.h +35 -0
  95. package/Libraries/Blob/RCTBlobManager.mm +358 -0
  96. package/Libraries/Blob/RCTBlobPlugins.h +41 -0
  97. package/Libraries/Blob/RCTBlobPlugins.mm +34 -0
  98. package/Libraries/Blob/RCTFileReaderModule.h +12 -0
  99. package/Libraries/Blob/RCTFileReaderModule.mm +96 -0
  100. package/Libraries/Blob/React-RCTBlob.podspec +68 -0
  101. package/Libraries/Blob/URL.js +173 -0
  102. package/Libraries/Blob/URLSearchParams.js +71 -0
  103. package/Libraries/Blob/URLSearchParams.js.flow +23 -0
  104. package/Libraries/Blob/__mocks__/BlobModule.js +16 -0
  105. package/Libraries/Blob/__mocks__/FileReaderModule.js +20 -0
  106. package/Libraries/BugReporting/BugReporting.js +140 -0
  107. package/Libraries/BugReporting/NativeBugReporting.js +13 -0
  108. package/Libraries/BugReporting/dumpReactTree.js +151 -0
  109. package/Libraries/BugReporting/getReactData.js +187 -0
  110. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +173 -0
  111. package/Libraries/Components/AccessibilityInfo/{AccessibilityInfo.harmony.js → AccessibilityInfo.js} +142 -69
  112. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +13 -0
  113. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +13 -0
  114. package/Libraries/Components/AccessibilityInfo/delegates/AccessibilityInfoDelegate.harmony.ts +44 -0
  115. package/Libraries/Components/AccessibilityInfo/delegates/AccessibilityInfoDelegate.ts +28 -0
  116. package/Libraries/Components/AccessibilityInfo/delegates/BaseAccessibilityInfoDelegate.ts +69 -0
  117. package/Libraries/Components/AccessibilityInfo/{NativeAccessibilityInfoHarmony.ts → delegates/NativeAccessibilityInfoHarmony.harmony.ts} +9 -2
  118. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +36 -0
  119. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
  120. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +20 -0
  121. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  122. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +177 -0
  123. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +13 -0
  124. package/Libraries/Components/Button.d.ts +42 -0
  125. package/Libraries/Components/{Button/Button.harmony.js → Button.js} +132 -133
  126. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  127. package/Libraries/Components/Clipboard/Clipboard.js +40 -0
  128. package/Libraries/Components/Clipboard/NativeClipboard.js +13 -0
  129. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +13 -0
  130. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +394 -0
  131. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  132. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +14 -0
  133. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  134. package/Libraries/Components/Keyboard/Keyboard.js +205 -0
  135. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  136. package/Libraries/Components/Keyboard/{KeyboardAvoidingView.harmony.js → KeyboardAvoidingView.js} +72 -23
  137. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +13 -0
  138. package/Libraries/Components/Keyboard/delegates/BaseKeyboardAvoidingViewDelegate.ts +28 -0
  139. package/Libraries/Components/Keyboard/delegates/KeyboardAvoidingViewDelegate.harmony.ts +42 -0
  140. package/Libraries/Components/Keyboard/delegates/KeyboardAvoidingViewDelegate.ts +6 -0
  141. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  142. package/Libraries/Components/Pressable/Pressable.js +369 -0
  143. package/Libraries/Components/Pressable/useAndroidRippleForView.js +109 -0
  144. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +113 -0
  145. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  146. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
  147. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +13 -0
  148. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +13 -0
  149. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +13 -0
  150. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  151. package/Libraries/Components/RefreshControl/{RefreshControl.harmony.js → RefreshControl.js} +62 -53
  152. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +31 -0
  153. package/Libraries/Components/RefreshControl/delegates/BaseRefreshControlDelegate.ts +31 -0
  154. package/Libraries/Components/RefreshControl/delegates/RefreshControlDelegate.harmony.tsx +29 -0
  155. package/Libraries/Components/RefreshControl/delegates/RefreshControlDelegate.ts +21 -0
  156. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +13 -0
  157. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  158. package/Libraries/Components/SafeAreaView/SafeAreaView.harmony.tsx +93 -31
  159. package/Libraries/Components/SafeAreaView/SafeAreaView.js +34 -0
  160. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +13 -0
  161. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +73 -0
  162. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +32 -0
  163. package/Libraries/Components/ScrollView/ScrollView.d.ts +910 -0
  164. package/Libraries/Components/ScrollView/{ScrollView.harmony.js → ScrollView.js} +342 -357
  165. package/Libraries/Components/ScrollView/ScrollViewCommands.js +52 -0
  166. package/Libraries/Components/ScrollView/ScrollViewContext.js +24 -0
  167. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +31 -0
  168. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +81 -0
  169. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +310 -0
  170. package/Libraries/Components/ScrollView/delegates/BaseScrollViewDelegate.ts +36 -0
  171. package/Libraries/Components/ScrollView/delegates/BaseScrollViewNativeComponentDelegate.ts +12 -0
  172. package/Libraries/Components/ScrollView/delegates/ScrollViewDelegate.harmony.tsx +41 -0
  173. package/Libraries/Components/ScrollView/delegates/ScrollViewDelegate.ts +23 -0
  174. package/Libraries/Components/ScrollView/delegates/ScrollViewNativeComponentDelegate.harmony.ts +89 -0
  175. package/Libraries/Components/ScrollView/delegates/ScrollViewNativeComponentDelegate.ts +14 -0
  176. package/Libraries/Components/ScrollView/delegates/types.ts +1 -0
  177. package/Libraries/Components/ScrollView/processDecelerationRate.harmony.ts +19 -0
  178. package/Libraries/Components/ScrollView/{processDecelerationRate.harmony.js → processDecelerationRate.js} +12 -6
  179. package/Libraries/Components/Sound/NativeSoundManager.js +13 -0
  180. package/Libraries/Components/Sound/SoundManager.js +21 -0
  181. package/Libraries/Components/StaticRenderer.js +37 -0
  182. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +13 -0
  183. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +13 -0
  184. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  185. package/Libraries/Components/StatusBar/{StatusBar.harmony.js → StatusBar.js} +124 -91
  186. package/Libraries/Components/StatusBar/delegates/BaseStatusBarDelegate.ts +25 -0
  187. package/Libraries/Components/StatusBar/delegates/NativeStatusBarManagerHarmony.harmony.ts +53 -0
  188. package/Libraries/Components/StatusBar/delegates/StatusBarDelegate.harmony.ts +83 -0
  189. package/Libraries/Components/StatusBar/delegates/StatusBarDelegate.ts +44 -0
  190. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +13 -0
  191. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  192. package/Libraries/Components/Switch/Switch.js +257 -0
  193. package/Libraries/Components/Switch/SwitchNativeComponent.js +13 -0
  194. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +751 -0
  195. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  196. package/Libraries/Components/TextInput/InputAccessoryView.js +123 -0
  197. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +13 -0
  198. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +45 -0
  199. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +43 -0
  200. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +168 -0
  201. package/Libraries/Components/TextInput/TextInput.d.ts +1007 -0
  202. package/Libraries/Components/TextInput/TextInput.flow.js +1109 -0
  203. package/Libraries/Components/TextInput/{TextInput.harmony.js → TextInput.js} +568 -336
  204. package/Libraries/Components/TextInput/TextInputNativeCommands.js +29 -0
  205. package/Libraries/Components/TextInput/TextInputState.js +216 -0
  206. package/Libraries/Components/TextInput/delegates/BaseTextInputDelegate.ts +39 -0
  207. package/Libraries/Components/TextInput/delegates/BaseTextInputStateDelegate.ts +12 -0
  208. package/Libraries/Components/TextInput/delegates/TextInputDelegate.harmony.tsx +98 -0
  209. package/Libraries/Components/TextInput/delegates/TextInputDelegate.ts +40 -0
  210. package/Libraries/Components/TextInput/delegates/TextInputStateDelegate.harmony.tsx +20 -0
  211. package/Libraries/Components/TextInput/delegates/TextInputStateDelegate.ts +15 -0
  212. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +13 -0
  213. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +74 -0
  214. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  215. package/Libraries/Components/ToastAndroid/ToastAndroid.js +45 -0
  216. package/Libraries/Components/Touchable/BoundingDimensions.js +53 -0
  217. package/Libraries/Components/Touchable/PooledClass.js +133 -0
  218. package/Libraries/Components/Touchable/Position.js +40 -0
  219. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  220. package/Libraries/Components/Touchable/Touchable.js +973 -0
  221. package/Libraries/Components/Touchable/TouchableBounce.js +222 -0
  222. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +62 -0
  223. package/Libraries/Components/Touchable/{TouchableHighlight.harmony.js → TouchableHighlight.js} +49 -47
  224. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  225. package/Libraries/Components/Touchable/{TouchableNativeFeedback.harmony.js → TouchableNativeFeedback.js} +79 -73
  226. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +81 -0
  227. package/Libraries/Components/Touchable/TouchableOpacity.js +339 -0
  228. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +151 -0
  229. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +238 -0
  230. package/Libraries/Components/Touchable/delegates/BaseTouchableHighlightDelegate.ts +13 -0
  231. package/Libraries/Components/Touchable/delegates/BaseTouchableNativeFeedbackDelegate.ts +13 -0
  232. package/Libraries/Components/Touchable/delegates/BaseTouchableWithoutFeedbackDelegate.ts +13 -0
  233. package/Libraries/Components/Touchable/delegates/TouchableHighlightDelegate.harmony.ts +14 -0
  234. package/Libraries/Components/Touchable/delegates/TouchableHighlightDelegate.ts +6 -0
  235. package/Libraries/Components/Touchable/delegates/TouchableNativeFeedbackDelegate.harmony.ts +14 -0
  236. package/Libraries/Components/Touchable/delegates/TouchableNativeFeedbackDelegate.ts +6 -0
  237. package/Libraries/Components/Touchable/delegates/TouchableWithoutFeedbackDelegate.harmony.ts +14 -0
  238. package/Libraries/Components/Touchable/delegates/TouchableWithoutFeedbackDelegate.ts +6 -0
  239. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +13 -0
  240. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +41 -0
  241. package/Libraries/Components/View/ReactNativeStyleAttributes.js +218 -0
  242. package/Libraries/Components/View/ReactNativeViewAttributes.js +60 -0
  243. package/Libraries/Components/View/View.d.ts +29 -0
  244. package/Libraries/Components/View/{View.harmony.js → View.js} +37 -53
  245. package/Libraries/Components/View/ViewAccessibility.d.ts +404 -0
  246. package/Libraries/Components/View/ViewAccessibility.js +167 -0
  247. package/Libraries/Components/View/ViewNativeComponent.js +36 -0
  248. package/Libraries/Components/View/ViewPropTypes.d.ts +221 -0
  249. package/Libraries/Components/View/ViewPropTypes.js +656 -0
  250. package/Libraries/Components/delegates/BaseButtonDelegate.ts +15 -0
  251. package/Libraries/Components/delegates/ButtonDelegate.harmony.ts +41 -0
  252. package/Libraries/Components/delegates/ButtonDelegate.ts +27 -0
  253. package/Libraries/Core/Devtools/getDevServer.js +43 -0
  254. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  255. package/Libraries/Core/Devtools/openFileInEditor.js +26 -0
  256. package/Libraries/Core/Devtools/openURLInBrowser.js +23 -0
  257. package/Libraries/Core/Devtools/parseErrorStack.js +59 -0
  258. package/Libraries/Core/Devtools/parseHermesStack.js +147 -0
  259. package/Libraries/Core/Devtools/symbolicateStackTrace.js +50 -0
  260. package/Libraries/Core/ExceptionsManager.js +282 -0
  261. package/Libraries/Core/ExtendedError.js +33 -0
  262. package/Libraries/Core/InitializeCore.js +60 -0
  263. package/Libraries/Core/NativeExceptionsManager.js +13 -0
  264. package/Libraries/Core/RawEventEmitter.js +39 -0
  265. package/Libraries/Core/ReactFiberErrorDialog.js +65 -0
  266. package/Libraries/Core/ReactNativeVersion.js +23 -0
  267. package/Libraries/Core/ReactNativeVersionCheck.js +52 -0
  268. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +13 -0
  269. package/Libraries/Core/Timers/JSTimers.js +487 -0
  270. package/Libraries/Core/Timers/NativeTiming.js +13 -0
  271. package/Libraries/Core/Timers/immediateShim.js +68 -0
  272. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  273. package/Libraries/Core/__mocks__/ErrorUtils.js +33 -0
  274. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +19 -0
  275. package/Libraries/Core/checkNativeVersion.js +18 -0
  276. package/Libraries/Core/polyfillPromise.js +38 -0
  277. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  278. package/Libraries/Core/registerCallableModule.js +42 -0
  279. package/Libraries/Core/setUpAlert.js +23 -0
  280. package/Libraries/Core/setUpBatchedBridge.js +50 -0
  281. package/Libraries/Core/setUpDeveloperTools.js +82 -0
  282. package/Libraries/Core/setUpErrorHandling.js +35 -0
  283. package/Libraries/Core/setUpGlobals.js +36 -0
  284. package/Libraries/Core/setUpNavigator.js +22 -0
  285. package/Libraries/Core/setUpPerformance.js +31 -0
  286. package/Libraries/Core/setUpPlatform.harmony.js +30 -0
  287. package/Libraries/Core/setUpPlatform.js +1 -0
  288. package/Libraries/Core/setUpReactDevTools.js +252 -0
  289. package/Libraries/Core/setUpReactRefresh.js +47 -0
  290. package/Libraries/Core/setUpRegeneratorRuntime.js +46 -0
  291. package/Libraries/Core/setUpSegmentFetcher.js +53 -0
  292. package/Libraries/Core/setUpTimers.js +125 -0
  293. package/Libraries/Core/setUpXHR.js +41 -0
  294. package/Libraries/Debugging/DebuggingOverlay.js +110 -0
  295. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  296. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  297. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  298. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +63 -0
  299. package/Libraries/EventEmitter/NativeEventEmitter.js +122 -0
  300. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +29 -0
  301. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +43 -0
  302. package/Libraries/EventEmitter/RCTEventEmitter.js +25 -0
  303. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  304. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +18 -0
  305. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +48 -0
  306. package/Libraries/Events/CustomEvent.js +32 -0
  307. package/Libraries/Events/EventPolyfill.js +239 -0
  308. package/Libraries/FBLazyVector/FBLazyVector/FBLazyIterator.h +127 -0
  309. package/Libraries/FBLazyVector/FBLazyVector/FBLazyVector.h +102 -0
  310. package/Libraries/FBLazyVector/FBLazyVector.podspec +31 -0
  311. package/Libraries/HeapCapture/HeapCapture.js +29 -0
  312. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +13 -0
  313. package/Libraries/Image/AssetRegistry.js +13 -0
  314. package/Libraries/Image/AssetSourceResolver.harmony.ts +75 -29
  315. package/Libraries/Image/AssetSourceResolver.js +202 -0
  316. package/Libraries/Image/AssetUtils.js +47 -0
  317. package/Libraries/Image/Image.android.js +322 -0
  318. package/Libraries/Image/Image.d.ts +373 -0
  319. package/Libraries/Image/Image.harmony.ts +17 -0
  320. package/Libraries/Image/Image.ios.js +252 -0
  321. package/Libraries/Image/Image.js.flow +13 -0
  322. package/Libraries/Image/ImageAnalyticsTagContext.js +22 -0
  323. package/Libraries/Image/ImageBackground.js +106 -0
  324. package/Libraries/Image/ImageInjection.js +87 -0
  325. package/Libraries/Image/ImageProps.js +296 -0
  326. package/Libraries/Image/ImageResizeMode.d.ts +56 -0
  327. package/Libraries/Image/ImageResizeMode.js +39 -0
  328. package/Libraries/Image/ImageSource.d.ts +74 -0
  329. package/Libraries/Image/ImageSource.js +135 -0
  330. package/Libraries/Image/ImageSourceUtils.js +80 -0
  331. package/Libraries/Image/ImageTypes.flow.js +78 -0
  332. package/Libraries/Image/ImageUtils.js +25 -0
  333. package/Libraries/Image/ImageViewNativeComponent.js +175 -0
  334. package/Libraries/Image/NativeImageEditor.js +13 -0
  335. package/Libraries/Image/NativeImageLoaderAndroid.js +13 -0
  336. package/Libraries/Image/NativeImageLoaderIOS.js +13 -0
  337. package/Libraries/Image/NativeImageStoreAndroid.js +13 -0
  338. package/Libraries/Image/NativeImageStoreIOS.js +13 -0
  339. package/Libraries/Image/RCTAnimatedImage.h +21 -0
  340. package/Libraries/Image/RCTAnimatedImage.mm +175 -0
  341. package/Libraries/Image/RCTBundleAssetImageLoader.h +12 -0
  342. package/Libraries/Image/RCTBundleAssetImageLoader.mm +83 -0
  343. package/Libraries/Image/RCTDisplayWeakRefreshable.h +23 -0
  344. package/Libraries/Image/RCTDisplayWeakRefreshable.mm +31 -0
  345. package/Libraries/Image/RCTGIFImageDecoder.h +12 -0
  346. package/Libraries/Image/RCTGIFImageDecoder.mm +63 -0
  347. package/Libraries/Image/RCTImageBlurUtils.h +13 -0
  348. package/Libraries/Image/RCTImageBlurUtils.mm +100 -0
  349. package/Libraries/Image/RCTImageCache.h +45 -0
  350. package/Libraries/Image/RCTImageCache.mm +164 -0
  351. package/Libraries/Image/RCTImageDataDecoder.h +53 -0
  352. package/Libraries/Image/RCTImageEditingManager.h +12 -0
  353. package/Libraries/Image/RCTImageEditingManager.mm +113 -0
  354. package/Libraries/Image/RCTImageLoader.h +43 -0
  355. package/Libraries/Image/RCTImageLoader.mm +1302 -0
  356. package/Libraries/Image/RCTImageLoaderLoggable.h +32 -0
  357. package/Libraries/Image/RCTImageLoaderProtocol.h +135 -0
  358. package/Libraries/Image/RCTImageLoaderWithAttributionProtocol.h +48 -0
  359. package/Libraries/Image/RCTImagePlugins.h +44 -0
  360. package/Libraries/Image/RCTImagePlugins.mm +37 -0
  361. package/Libraries/Image/RCTImageShadowView.h +12 -0
  362. package/Libraries/Image/RCTImageShadowView.mm +24 -0
  363. package/Libraries/Image/RCTImageStoreManager.h +55 -0
  364. package/Libraries/Image/RCTImageStoreManager.mm +296 -0
  365. package/Libraries/Image/RCTImageURLLoader.h +83 -0
  366. package/Libraries/Image/RCTImageURLLoaderWithAttribution.h +78 -0
  367. package/Libraries/Image/RCTImageURLLoaderWithAttribution.mm +32 -0
  368. package/Libraries/Image/RCTImageUtils.h +94 -0
  369. package/Libraries/Image/RCTImageUtils.mm +389 -0
  370. package/Libraries/Image/RCTImageView.h +27 -0
  371. package/Libraries/Image/RCTImageView.mm +504 -0
  372. package/Libraries/Image/RCTImageViewManager.h +12 -0
  373. package/Libraries/Image/RCTImageViewManager.mm +116 -0
  374. package/Libraries/Image/RCTLocalAssetImageLoader.h +13 -0
  375. package/Libraries/Image/RCTLocalAssetImageLoader.mm +83 -0
  376. package/Libraries/Image/RCTResizeMode.h +53 -0
  377. package/Libraries/Image/RCTResizeMode.mm +25 -0
  378. package/Libraries/Image/RCTUIImageViewAnimated.h +13 -0
  379. package/Libraries/Image/RCTUIImageViewAnimated.mm +346 -0
  380. package/Libraries/Image/React-RCTImage.podspec +60 -0
  381. package/Libraries/Image/RelativeImageStub.js +28 -0
  382. package/Libraries/Image/TextInlineImageNativeComponent.js +51 -0
  383. package/Libraries/Image/nativeImageSource.js +64 -0
  384. package/Libraries/Image/resolveAssetSource.js +143 -0
  385. package/Libraries/Inspector/BorderBox.js +32 -0
  386. package/Libraries/Inspector/BoxInspector.js +109 -0
  387. package/Libraries/Inspector/ElementBox.js +143 -0
  388. package/Libraries/Inspector/ElementProperties.js +120 -0
  389. package/Libraries/Inspector/Inspector.js +206 -0
  390. package/Libraries/Inspector/InspectorOverlay.js +65 -0
  391. package/Libraries/Inspector/InspectorPanel.js +164 -0
  392. package/Libraries/Inspector/NetworkOverlay.js +611 -0
  393. package/Libraries/Inspector/PerformanceOverlay.js +63 -0
  394. package/Libraries/Inspector/ReactDevToolsOverlay.js +165 -0
  395. package/Libraries/Inspector/StyleInspector.js +70 -0
  396. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +81 -0
  397. package/Libraries/Inspector/resolveBoxStyle.js +114 -0
  398. package/Libraries/Interaction/FrameRateLogger.js +72 -0
  399. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  400. package/Libraries/Interaction/InteractionManager.js +216 -0
  401. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  402. package/Libraries/Interaction/JSEventLoopWatchdog.js +88 -0
  403. package/Libraries/Interaction/NativeFrameRateLogger.js +13 -0
  404. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  405. package/Libraries/Interaction/PanResponder.js +579 -0
  406. package/Libraries/Interaction/TaskQueue.js +183 -0
  407. package/Libraries/Interaction/TouchHistoryMath.js +156 -0
  408. package/Libraries/JSInspector/InspectorAgent.js +27 -0
  409. package/Libraries/JSInspector/JSInspector.js +33 -0
  410. package/Libraries/JSInspector/NetworkAgent.js +295 -0
  411. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  412. package/Libraries/LayoutAnimation/LayoutAnimation.js +200 -0
  413. package/Libraries/Linking/Linking.d.ts +61 -0
  414. package/Libraries/Linking/Linking.js +133 -0
  415. package/Libraries/Linking/NativeIntentAndroid.js +13 -0
  416. package/Libraries/Linking/NativeLinkingManager.js +13 -0
  417. package/Libraries/LinkingIOS/RCTLinkingManager.h +27 -0
  418. package/Libraries/LinkingIOS/RCTLinkingManager.mm +204 -0
  419. package/Libraries/LinkingIOS/RCTLinkingPlugins.h +40 -0
  420. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +33 -0
  421. package/Libraries/LinkingIOS/React-RCTLinking.podspec +56 -0
  422. package/Libraries/Lists/FillRateHelper.js +19 -0
  423. package/Libraries/Lists/FlatList.d.ts +244 -0
  424. package/Libraries/Lists/FlatList.js +717 -0
  425. package/Libraries/Lists/SectionList.d.ts +267 -0
  426. package/Libraries/Lists/SectionList.js +269 -0
  427. package/Libraries/Lists/SectionListModern.js +249 -0
  428. package/Libraries/Lists/ViewabilityHelper.js +24 -0
  429. package/Libraries/Lists/VirtualizeUtils.js +18 -0
  430. package/Libraries/Lists/VirtualizedList.js +23 -0
  431. package/Libraries/Lists/VirtualizedListContext.js +18 -0
  432. package/Libraries/Lists/VirtualizedSectionList.js +22 -0
  433. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +118 -0
  434. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +134 -0
  435. package/Libraries/LogBox/Data/LogBoxData.js +511 -0
  436. package/Libraries/LogBox/Data/LogBoxLog.js +257 -0
  437. package/Libraries/LogBox/Data/LogBoxSymbolication.js +65 -0
  438. package/Libraries/LogBox/Data/parseLogBoxLog.js +514 -0
  439. package/Libraries/LogBox/LogBox.d.ts +28 -0
  440. package/Libraries/LogBox/LogBox.js +291 -0
  441. package/Libraries/LogBox/LogBoxInspectorContainer.js +68 -0
  442. package/Libraries/LogBox/LogBoxNotificationContainer.js +105 -0
  443. package/Libraries/LogBox/UI/AnsiHighlight.js +121 -0
  444. package/Libraries/LogBox/UI/LogBoxButton.js +70 -0
  445. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  446. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  447. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  448. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  449. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  450. package/Libraries/LogBox/UI/LogBoxInspector.js +89 -0
  451. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  452. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +164 -0
  453. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +70 -0
  454. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  455. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +108 -0
  456. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  457. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +125 -0
  458. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +188 -0
  459. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +58 -0
  460. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +133 -0
  461. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +114 -0
  462. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +221 -0
  463. package/Libraries/LogBox/UI/LogBoxMessage.js +169 -0
  464. package/Libraries/LogBox/UI/LogBoxNotification.js +83 -0
  465. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  466. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  467. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  468. package/Libraries/LogBox/UI/LogBoxStyle.js +65 -0
  469. package/Libraries/Modal/Modal.d.ts +116 -0
  470. package/Libraries/Modal/Modal.js +365 -0
  471. package/Libraries/Modal/ModalInjection.js +15 -0
  472. package/Libraries/Modal/NativeModalManager.js +13 -0
  473. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +13 -0
  474. package/Libraries/NativeAnimation/Drivers/RCTAnimationDriver.h +38 -0
  475. package/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.h +12 -0
  476. package/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.mm +125 -0
  477. package/Libraries/NativeAnimation/Drivers/RCTEventAnimation.h +20 -0
  478. package/Libraries/NativeAnimation/Drivers/RCTEventAnimation.mm +36 -0
  479. package/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.h +12 -0
  480. package/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.mm +151 -0
  481. package/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.h +12 -0
  482. package/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.mm +200 -0
  483. package/Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.h +12 -0
  484. package/Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.mm +25 -0
  485. package/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.h +50 -0
  486. package/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.mm +126 -0
  487. package/Libraries/NativeAnimation/Nodes/RCTColorAnimatedNode.h +14 -0
  488. package/Libraries/NativeAnimation/Nodes/RCTColorAnimatedNode.mm +29 -0
  489. package/Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.h +12 -0
  490. package/Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.mm +64 -0
  491. package/Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.h +12 -0
  492. package/Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.mm +32 -0
  493. package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.h +26 -0
  494. package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +169 -0
  495. package/Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.h +12 -0
  496. package/Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.mm +22 -0
  497. package/Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.h +12 -0
  498. package/Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.mm +26 -0
  499. package/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.h +14 -0
  500. package/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.mm +66 -0
  501. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.h +26 -0
  502. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.mm +146 -0
  503. package/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.h +14 -0
  504. package/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.mm +62 -0
  505. package/Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.h +12 -0
  506. package/Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.mm +25 -0
  507. package/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.h +12 -0
  508. package/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.mm +47 -0
  509. package/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.h +14 -0
  510. package/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.mm +55 -0
  511. package/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.h +30 -0
  512. package/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.mm +60 -0
  513. package/Libraries/NativeAnimation/RCTAnimationPlugins.h +41 -0
  514. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +34 -0
  515. package/Libraries/NativeAnimation/RCTAnimationUtils.h +46 -0
  516. package/Libraries/NativeAnimation/RCTAnimationUtils.mm +129 -0
  517. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.h +28 -0
  518. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +395 -0
  519. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +94 -0
  520. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +511 -0
  521. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +25 -0
  522. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +411 -0
  523. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +56 -0
  524. package/Libraries/NativeComponent/BaseViewConfig.android.js +423 -0
  525. package/Libraries/NativeComponent/BaseViewConfig.harmony.js +12 -326
  526. package/Libraries/NativeComponent/BaseViewConfig.ios.js +423 -0
  527. package/Libraries/NativeComponent/BaseViewConfig.js.flow +14 -0
  528. package/Libraries/NativeComponent/NativeComponentRegistry.js +164 -0
  529. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +30 -0
  530. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +25 -0
  531. package/Libraries/NativeComponent/StaticViewConfigValidator.js +144 -0
  532. package/Libraries/NativeComponent/ViewConfig.js +52 -0
  533. package/Libraries/NativeComponent/ViewConfigIgnore.js +55 -0
  534. package/Libraries/NativeComponent/delegates/BaseViewConfigIgnoreDelegate.ts +10 -0
  535. package/Libraries/NativeComponent/delegates/ViewConfigIgnoreDelegate.harmony.ts +13 -0
  536. package/Libraries/NativeComponent/delegates/ViewConfigIgnoreDelegate.ts +10 -0
  537. package/Libraries/NativeModules/specs/NativeDevMenu.js +13 -0
  538. package/Libraries/NativeModules/specs/NativeDevSettings.js +13 -0
  539. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +13 -0
  540. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +13 -0
  541. package/Libraries/NativeModules/specs/NativeLogBox.js +13 -0
  542. package/Libraries/NativeModules/specs/NativeRedBox.js +13 -0
  543. package/Libraries/NativeModules/specs/NativeSourceCode.js +13 -0
  544. package/Libraries/Network/FormData.js +108 -0
  545. package/Libraries/Network/NativeNetworkingAndroid.js +13 -0
  546. package/Libraries/Network/NativeNetworkingIOS.js +13 -0
  547. package/Libraries/Network/RCTDataRequestHandler.h +16 -0
  548. package/Libraries/Network/RCTDataRequestHandler.mm +86 -0
  549. package/Libraries/Network/RCTFileRequestHandler.h +16 -0
  550. package/Libraries/Network/RCTFileRequestHandler.mm +100 -0
  551. package/Libraries/Network/RCTHTTPRequestHandler.h +22 -0
  552. package/Libraries/Network/RCTHTTPRequestHandler.mm +195 -0
  553. package/Libraries/Network/RCTNetworkPlugins.h +43 -0
  554. package/Libraries/Network/RCTNetworkPlugins.mm +36 -0
  555. package/Libraries/Network/RCTNetworkTask.h +47 -0
  556. package/Libraries/Network/RCTNetworkTask.mm +228 -0
  557. package/Libraries/Network/RCTNetworking.android.js +95 -0
  558. package/Libraries/Network/RCTNetworking.h +86 -0
  559. package/Libraries/Network/RCTNetworking.ios.js +112 -0
  560. package/Libraries/Network/RCTNetworking.js.flow +89 -0
  561. package/Libraries/Network/RCTNetworking.mm +823 -0
  562. package/Libraries/Network/React-RCTNetwork.podspec +56 -0
  563. package/Libraries/Network/XHRInterceptor.js +214 -0
  564. package/Libraries/Network/XMLHttpRequest.js +698 -0
  565. package/Libraries/Network/convertRequestBody.js +43 -0
  566. package/Libraries/Network/fetch.js +19 -0
  567. package/Libraries/NewAppScreen/components/Colors.js +19 -0
  568. package/Libraries/NewAppScreen/components/DebugInstructions.js +41 -0
  569. package/Libraries/NewAppScreen/components/Header.js +77 -0
  570. package/Libraries/NewAppScreen/components/HermesBadge.js +53 -0
  571. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +148 -0
  572. package/Libraries/NewAppScreen/components/ReloadInstructions.js +39 -0
  573. package/Libraries/NewAppScreen/components/logo.png +0 -0
  574. package/Libraries/NewAppScreen/index.js +25 -0
  575. package/Libraries/Performance/NativeJSCSamplingProfiler.js +13 -0
  576. package/Libraries/Performance/SamplingProfiler.js +39 -0
  577. package/Libraries/Performance/Systrace.d.ts +66 -0
  578. package/Libraries/Performance/Systrace.js +139 -0
  579. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +13 -0
  580. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +163 -0
  581. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +299 -0
  582. package/Libraries/Pressability/HoverState.js +58 -0
  583. package/Libraries/Pressability/Pressability.js +954 -0
  584. package/Libraries/Pressability/PressabilityDebug.js +85 -0
  585. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +49 -0
  586. package/Libraries/Pressability/PressabilityTypes.js +18 -0
  587. package/Libraries/Pressability/usePressability.js +60 -0
  588. package/Libraries/Promise.js +23 -0
  589. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +13 -0
  590. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +295 -0
  591. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +569 -0
  592. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.h +48 -0
  593. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +590 -0
  594. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.h +40 -0
  595. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +33 -0
  596. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +56 -0
  597. package/Libraries/ReactNative/AppContainer-dev.js +208 -0
  598. package/Libraries/ReactNative/AppContainer-prod.js +50 -0
  599. package/Libraries/ReactNative/AppContainer.js +31 -0
  600. package/Libraries/ReactNative/AppRegistry.d.ts +121 -0
  601. package/Libraries/ReactNative/AppRegistry.js +360 -0
  602. package/Libraries/ReactNative/BridgelessUIManager.js +430 -0
  603. package/Libraries/ReactNative/DisplayMode.js +32 -0
  604. package/Libraries/ReactNative/FabricUIManager.js +145 -0
  605. package/Libraries/ReactNative/HeadlessJsTaskError.js +11 -0
  606. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  607. package/Libraries/ReactNative/{I18nManager.harmony.js → I18nManager.js} +11 -25
  608. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +13 -0
  609. package/Libraries/ReactNative/NativeI18nManager.js +13 -0
  610. package/Libraries/ReactNative/NativeUIManager.js +13 -0
  611. package/Libraries/ReactNative/PaperUIManager.js +191 -0
  612. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +150 -0
  613. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +100 -0
  614. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +38 -0
  615. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  616. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +33 -0
  617. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +31 -0
  618. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +68 -0
  619. package/Libraries/ReactNative/RendererImplementation.js +164 -0
  620. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  621. package/Libraries/ReactNative/RendererProxy.js +26 -0
  622. package/Libraries/ReactNative/RootTag.d.ts +13 -0
  623. package/Libraries/ReactNative/RootTag.js +27 -0
  624. package/Libraries/ReactNative/UIManager.d.ts +113 -0
  625. package/Libraries/ReactNative/{UIManager.harmony.js → UIManager.js} +16 -33
  626. package/Libraries/ReactNative/UIManagerProperties.js +61 -0
  627. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +334 -0
  628. package/Libraries/ReactNative/delegates/BaseBridgelessUIManagerDelegate.ts +14 -0
  629. package/Libraries/ReactNative/delegates/BaseI18nManagerDelegate.ts +18 -0
  630. package/Libraries/ReactNative/delegates/BridgelessUIManagerDelegate.harmony.ts +14 -0
  631. package/Libraries/ReactNative/delegates/BridgelessUIManagerDelegate.ts +11 -0
  632. package/Libraries/ReactNative/delegates/I18nManagerDelegate.harmony.ts +22 -0
  633. package/Libraries/ReactNative/delegates/I18nManagerDelegate.ts +24 -0
  634. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +33 -0
  635. package/Libraries/ReactNative/getNativeComponentAttributes.js +212 -0
  636. package/Libraries/ReactNative/renderApplication.js +108 -0
  637. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  638. package/Libraries/ReactNative/requireNativeComponent.js +35 -0
  639. package/Libraries/ReactPrivate/README +1 -0
  640. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +11 -0
  641. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +116 -0
  642. package/Libraries/Renderer/README.md +22 -0
  643. package/Libraries/Renderer/implementations/ReactFabric-dev.js +27376 -0
  644. package/Libraries/Renderer/implementations/ReactFabric-prod.js +9152 -0
  645. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +9642 -0
  646. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27830 -0
  647. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9379 -0
  648. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +9896 -0
  649. package/Libraries/Renderer/shims/ReactFabric.js +33 -0
  650. package/Libraries/Renderer/shims/ReactFeatureFlags.js +19 -0
  651. package/Libraries/Renderer/shims/ReactNative.js +24 -0
  652. package/Libraries/Renderer/shims/ReactNativeTypes.js +320 -0
  653. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +123 -0
  654. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +35 -0
  655. package/Libraries/Required/RCTRequired.h +90 -0
  656. package/Libraries/Required/RCTRequired.podspec +30 -0
  657. package/Libraries/Settings/NativeSettingsManager.js +13 -0
  658. package/Libraries/Settings/RCTSettingsManager.h +16 -0
  659. package/Libraries/Settings/RCTSettingsManager.mm +123 -0
  660. package/Libraries/Settings/RCTSettingsPlugins.h +40 -0
  661. package/Libraries/Settings/RCTSettingsPlugins.mm +33 -0
  662. package/Libraries/Settings/React-RCTSettings.podspec +56 -0
  663. package/Libraries/Settings/Settings.d.ts +18 -0
  664. package/Libraries/Settings/Settings.harmony.ts +20 -0
  665. package/Libraries/Settings/Settings.ios.js +81 -0
  666. package/Libraries/Settings/Settings.js +33 -0
  667. package/Libraries/Share/NativeShareModule.js +13 -0
  668. package/Libraries/Share/Share.d.ts +80 -0
  669. package/Libraries/Share/{Share.harmony.js → Share.js} +32 -30
  670. package/Libraries/Share/delegates/BaseShareDelegate.ts +21 -0
  671. package/Libraries/Share/delegates/ShareDelegate.harmony.ts +42 -0
  672. package/Libraries/Share/delegates/ShareDelegate.ts +20 -0
  673. package/Libraries/StyleSheet/EdgeInsetsPropType.js +18 -0
  674. package/Libraries/StyleSheet/NativePlatformColor.harmony.ts +15 -0
  675. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +40 -0
  676. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  677. package/Libraries/StyleSheet/PlatformColorValueTypes.harmony.ts +8 -1
  678. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +113 -0
  679. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +22 -0
  680. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  681. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +29 -0
  682. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +22 -0
  683. package/Libraries/StyleSheet/PointPropType.js +17 -0
  684. package/Libraries/StyleSheet/Rect.js +26 -0
  685. package/Libraries/StyleSheet/StyleSheet.d.ts +150 -0
  686. package/Libraries/StyleSheet/StyleSheet.js +356 -0
  687. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +573 -0
  688. package/Libraries/StyleSheet/StyleSheetTypes.js +1004 -0
  689. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +58 -0
  690. package/Libraries/StyleSheet/flattenStyle.js +46 -0
  691. package/Libraries/StyleSheet/normalizeColor.js +34 -0
  692. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  693. package/Libraries/StyleSheet/private/_TransformStyle.js +69 -0
  694. package/Libraries/StyleSheet/processAspectRatio.js +63 -0
  695. package/Libraries/StyleSheet/processBackgroundImage.js +361 -0
  696. package/Libraries/StyleSheet/processBoxShadow.js +209 -0
  697. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  698. package/Libraries/StyleSheet/processColor.js +59 -0
  699. package/Libraries/StyleSheet/processColorArray.js +35 -0
  700. package/Libraries/StyleSheet/processFilter.js +321 -0
  701. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  702. package/Libraries/StyleSheet/processTransform.js +263 -0
  703. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  704. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +31 -0
  705. package/Libraries/StyleSheet/splitLayoutProps.js +72 -0
  706. package/Libraries/Text/BaseText/RCTBaseTextShadowView.h +29 -0
  707. package/Libraries/Text/BaseText/RCTBaseTextShadowView.mm +158 -0
  708. package/Libraries/Text/BaseText/RCTBaseTextViewManager.h +16 -0
  709. package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +60 -0
  710. package/Libraries/Text/RCTConvert+Text.h +23 -0
  711. package/Libraries/Text/RCTConvert+Text.mm +44 -0
  712. package/Libraries/Text/RCTTextAttributes.h +100 -0
  713. package/Libraries/Text/RCTTextAttributes.mm +354 -0
  714. package/Libraries/Text/RCTTextTransform.h +16 -0
  715. package/Libraries/Text/RawText/RCTRawTextShadowView.h +18 -0
  716. package/Libraries/Text/RawText/RCTRawTextShadowView.mm +34 -0
  717. package/Libraries/Text/RawText/RCTRawTextViewManager.h +16 -0
  718. package/Libraries/Text/RawText/RCTRawTextViewManager.mm +28 -0
  719. package/Libraries/Text/React-RCTText.podspec +37 -0
  720. package/Libraries/Text/Text/NSTextStorage+FontScaling.h +20 -0
  721. package/Libraries/Text/Text/NSTextStorage+FontScaling.m +122 -0
  722. package/Libraries/Text/Text/RCTDynamicTypeRamp.h +37 -0
  723. package/Libraries/Text/Text/RCTDynamicTypeRamp.mm +82 -0
  724. package/Libraries/Text/Text/RCTTextShadowView.h +28 -0
  725. package/Libraries/Text/Text/RCTTextShadowView.mm +466 -0
  726. package/Libraries/Text/Text/RCTTextView.h +29 -0
  727. package/Libraries/Text/Text/RCTTextView.mm +294 -0
  728. package/Libraries/Text/Text/RCTTextViewManager.h +14 -0
  729. package/Libraries/Text/Text/RCTTextViewManager.mm +93 -0
  730. package/Libraries/Text/Text.d.ts +219 -0
  731. package/Libraries/Text/Text.js +537 -0
  732. package/Libraries/Text/TextAncestor.js +23 -0
  733. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.h +16 -0
  734. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm +63 -0
  735. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.h +16 -0
  736. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm +24 -0
  737. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +44 -0
  738. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +338 -0
  739. package/Libraries/Text/TextInput/RCTBackedTextInputDelegate.h +46 -0
  740. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.h +36 -0
  741. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +307 -0
  742. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +57 -0
  743. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.h +25 -0
  744. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +364 -0
  745. package/Libraries/Text/TextInput/RCTBaseTextInputView.h +63 -0
  746. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +817 -0
  747. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.h +12 -0
  748. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +178 -0
  749. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.h +12 -0
  750. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm +20 -0
  751. package/Libraries/Text/TextInput/RCTInputAccessoryView.h +17 -0
  752. package/Libraries/Text/TextInput/RCTInputAccessoryView.mm +78 -0
  753. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.h +12 -0
  754. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm +74 -0
  755. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.h +12 -0
  756. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +29 -0
  757. package/Libraries/Text/TextInput/RCTTextSelection.h +26 -0
  758. package/Libraries/Text/TextInput/RCTTextSelection.mm +36 -0
  759. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.h +16 -0
  760. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm +39 -0
  761. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.h +16 -0
  762. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm +31 -0
  763. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +40 -0
  764. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +255 -0
  765. package/Libraries/Text/TextNativeComponent.js +82 -0
  766. package/Libraries/Text/TextProps.js +268 -0
  767. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.h +12 -0
  768. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm +38 -0
  769. package/Libraries/Text/VirtualText/RCTVirtualTextView.h +23 -0
  770. package/Libraries/Text/VirtualText/RCTVirtualTextView.mm +12 -0
  771. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.h +12 -0
  772. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm +26 -0
  773. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  774. package/Libraries/TurboModule/RCTExport.js +38 -0
  775. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +13 -0
  776. package/Libraries/TurboModule/TurboModuleRegistry.js +53 -0
  777. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +13 -0
  778. package/Libraries/TypeSafety/RCTConvertHelpers.h +83 -0
  779. package/Libraries/TypeSafety/RCTConvertHelpers.mm +51 -0
  780. package/Libraries/TypeSafety/RCTTypeSafety.podspec +39 -0
  781. package/Libraries/TypeSafety/RCTTypedModuleConstants.h +47 -0
  782. package/Libraries/TypeSafety/RCTTypedModuleConstants.mm +50 -0
  783. package/Libraries/Types/CodegenTypes.js +47 -0
  784. package/Libraries/Types/CoreEventTypes.d.ts +259 -0
  785. package/Libraries/Types/CoreEventTypes.js +291 -0
  786. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  787. package/Libraries/Types/RootTagTypes.js +11 -0
  788. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  789. package/Libraries/UTFSequence.js +56 -0
  790. package/Libraries/Utilities/Appearance.d.ts +53 -0
  791. package/Libraries/Utilities/Appearance.js +133 -0
  792. package/Libraries/Utilities/{BackHandler.harmony.js → BackHandler.android.js} +8 -22
  793. package/Libraries/Utilities/BackHandler.d.ts +34 -0
  794. package/Libraries/Utilities/BackHandler.harmony.ts +10 -0
  795. package/Libraries/Utilities/BackHandler.ios.js +34 -0
  796. package/Libraries/Utilities/BackHandler.js.flow +23 -0
  797. package/Libraries/Utilities/DebugEnvironment.js +16 -0
  798. package/Libraries/Utilities/DevLoadingView.js +64 -0
  799. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  800. package/Libraries/Utilities/DevSettings.js +72 -0
  801. package/Libraries/Utilities/DeviceInfo.js +13 -0
  802. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  803. package/Libraries/Utilities/Dimensions.js +123 -0
  804. package/Libraries/Utilities/FeatureDetection.js +31 -0
  805. package/Libraries/Utilities/GlobalPerformanceLogger.js +24 -0
  806. package/Libraries/Utilities/HMRClient.js +362 -0
  807. package/Libraries/Utilities/HMRClientProdShim.js +30 -0
  808. package/Libraries/Utilities/IPerformanceLogger.d.ts +48 -0
  809. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  810. package/Libraries/Utilities/NativeAppearance.js +13 -0
  811. package/Libraries/Utilities/NativeDevLoadingView.js +13 -0
  812. package/Libraries/Utilities/NativeDeviceInfo.js +13 -0
  813. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +13 -0
  814. package/Libraries/Utilities/NativePlatformConstantsHarmony.harmony.ts +17 -0
  815. package/Libraries/Utilities/NativePlatformConstantsIOS.js +13 -0
  816. package/Libraries/Utilities/PerformanceLoggerContext.js +33 -0
  817. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  818. package/Libraries/Utilities/PixelRatio.js +127 -0
  819. package/Libraries/Utilities/Platform.android.js +87 -0
  820. package/Libraries/Utilities/Platform.d.ts +21 -11
  821. package/Libraries/Utilities/Platform.flow.js +91 -0
  822. package/Libraries/Utilities/Platform.harmony.ts +38 -13
  823. package/Libraries/Utilities/Platform.ios.js +88 -0
  824. package/Libraries/Utilities/Platform.js.flow +13 -0
  825. package/Libraries/Utilities/PolyfillFunctions.js +56 -0
  826. package/Libraries/Utilities/RCTLog.js +56 -0
  827. package/Libraries/Utilities/ReactNativeTestTools.js +225 -0
  828. package/Libraries/Utilities/SceneTracker.js +42 -0
  829. package/Libraries/Utilities/__mocks__/BackHandler.js +45 -0
  830. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +16 -0
  831. package/Libraries/Utilities/__mocks__/PixelRatio.js +25 -0
  832. package/Libraries/Utilities/binaryToBase64.js +31 -0
  833. package/Libraries/Utilities/codegenNativeCommands.js +31 -0
  834. package/Libraries/Utilities/codegenNativeComponent.js +73 -0
  835. package/Libraries/Utilities/{createPerformanceLogger.harmony.js → createPerformanceLogger.js} +12 -50
  836. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +90 -0
  837. package/Libraries/Utilities/defineLazyObjectProperty.js +66 -0
  838. package/Libraries/Utilities/differ/deepDiffer.js +101 -0
  839. package/Libraries/Utilities/differ/insetsDiffer.js +40 -0
  840. package/Libraries/Utilities/differ/matricesDiffer.js +51 -0
  841. package/Libraries/Utilities/differ/pointsDiffer.js +27 -0
  842. package/Libraries/Utilities/differ/sizesDiffer.js +26 -0
  843. package/Libraries/Utilities/dismissKeyboard.js +21 -0
  844. package/Libraries/Utilities/infoLog.js +20 -0
  845. package/Libraries/Utilities/logError.js +27 -0
  846. package/Libraries/Utilities/mapWithSeparator.js +28 -0
  847. package/Libraries/Utilities/stringifySafe.js +121 -0
  848. package/Libraries/Utilities/stringifyViewConfig.js +22 -0
  849. package/Libraries/Utilities/useColorScheme.js +25 -0
  850. package/Libraries/Utilities/useMergeRefs.js +59 -0
  851. package/Libraries/Utilities/useRefEffect.js +45 -0
  852. package/Libraries/Utilities/useWindowDimensions.js +47 -0
  853. package/Libraries/Utilities/warnOnce.js +32 -0
  854. package/Libraries/Vibration/NativeVibration.js +13 -0
  855. package/Libraries/Vibration/RCTVibration.h +12 -0
  856. package/Libraries/Vibration/RCTVibration.mm +54 -0
  857. package/Libraries/Vibration/RCTVibrationPlugins.h +40 -0
  858. package/Libraries/Vibration/RCTVibrationPlugins.mm +33 -0
  859. package/Libraries/Vibration/React-RCTVibration.podspec +56 -0
  860. package/Libraries/Vibration/Vibration.d.ts +43 -0
  861. package/Libraries/Vibration/Vibration.js +115 -0
  862. package/Libraries/Vibration/delegates/BaseVibrationDelegate.ts +11 -0
  863. package/Libraries/Vibration/delegates/VibrationDelegate.harmony.ts +14 -0
  864. package/Libraries/Vibration/delegates/VibrationDelegate.ts +11 -0
  865. package/Libraries/WebSocket/NativeWebSocketModule.js +13 -0
  866. package/Libraries/WebSocket/RCTReconnectingWebSocket.h +37 -0
  867. package/Libraries/WebSocket/RCTReconnectingWebSocket.m +109 -0
  868. package/Libraries/WebSocket/WebSocket.js +297 -0
  869. package/Libraries/WebSocket/WebSocketEvent.js +30 -0
  870. package/Libraries/WebSocket/WebSocketInterceptor.js +247 -0
  871. package/Libraries/WebSocket/__mocks__/event-target-shim.js +27 -0
  872. package/Libraries/Wrapper/Example/RCTWrapperExampleView.h +16 -0
  873. package/Libraries/Wrapper/Example/RCTWrapperExampleView.m +53 -0
  874. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.h +16 -0
  875. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.m +23 -0
  876. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.h +20 -0
  877. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.m +46 -0
  878. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.h +18 -0
  879. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.m +31 -0
  880. package/Libraries/Wrapper/RCTWrapper.h +68 -0
  881. package/Libraries/Wrapper/RCTWrapperShadowView.h +22 -0
  882. package/Libraries/Wrapper/RCTWrapperShadowView.m +134 -0
  883. package/Libraries/Wrapper/RCTWrapperView.h +36 -0
  884. package/Libraries/Wrapper/RCTWrapperView.m +95 -0
  885. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.h +25 -0
  886. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.m +133 -0
  887. package/Libraries/Wrapper/RCTWrapperViewManager.h +20 -0
  888. package/Libraries/Wrapper/RCTWrapperViewManager.m +27 -0
  889. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  890. package/Libraries/YellowBox/YellowBoxDeprecated.js +75 -0
  891. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +32 -0
  892. package/Libraries/promiseRejectionTrackingOptions.js +72 -0
  893. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  894. package/Libraries/vendor/core/ErrorUtils.js +25 -0
  895. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  896. package/Libraries/vendor/emitter/EventEmitter.js +158 -0
  897. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +81 -0
  898. package/NOTICE.md +846 -0
  899. package/README.md +2 -2
  900. package/delegates/DelegateError.ts +10 -0
  901. package/index.js +53 -63
  902. package/jest.config.js +0 -7
  903. package/metro.config.d.ts +17 -0
  904. package/metro.config.js +398 -115
  905. package/package.json +58 -37
  906. package/react-native.config.js +57 -9
  907. package/react_native_openharmony.har +0 -0
  908. package/src/private/animated/NativeAnimatedHelper.js +440 -0
  909. package/src/private/animated/NativeAnimatedValidation.js +64 -0
  910. package/src/private/animated/useAnimatedPropsMemo.js +356 -0
  911. package/src/private/components/HScrollViewNativeComponents.js +30 -0
  912. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +32 -0
  913. package/src/private/components/VScrollViewNativeComponents.js +25 -0
  914. package/src/private/debugging/FuseboxSessionObserver.js +42 -0
  915. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  916. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  917. package/src/private/debugging/ReactDevToolsSettingsManager.js.flow +16 -0
  918. package/src/private/debugging/setUpFuseboxReactDevToolsDispatcher.js +114 -0
  919. package/src/private/devmenu/DevMenu.d.ts +20 -0
  920. package/src/private/devmenu/DevMenu.js +31 -0
  921. package/src/private/featureflags/ReactNativeFeatureFlags.js +369 -0
  922. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +109 -0
  923. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +78 -0
  924. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  925. package/src/private/renderer/errorhandling/ErrorHandlers.js +126 -0
  926. package/src/private/setup/setUpDOM.js +36 -0
  927. package/src/private/setup/setUpIntersectionObserver.js +27 -0
  928. package/src/private/setup/setUpMutationObserver.js +31 -0
  929. package/src/private/setup/setUpPerformanceObserver.js +64 -0
  930. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  931. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  932. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +27 -0
  933. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  934. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  935. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  936. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  937. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  938. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  939. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +147 -0
  940. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  941. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  942. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  943. package/src/private/specs/modules/NativeAccessibilityInfo.js +42 -0
  944. package/src/private/specs/modules/NativeAccessibilityManager.js +70 -0
  945. package/src/private/specs/modules/NativeActionSheetManager.js +56 -0
  946. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  947. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  948. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  949. package/src/private/specs/modules/NativeAppState.js +33 -0
  950. package/src/private/specs/modules/NativeAppearance.js +30 -0
  951. package/src/private/specs/modules/NativeBlobModule.js +61 -0
  952. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  953. package/src/private/specs/modules/NativeClipboard.js +21 -0
  954. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  955. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  956. package/src/private/specs/modules/NativeDevSettings.js +34 -0
  957. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  958. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  959. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  960. package/src/private/specs/modules/NativeExceptionsManager.js +91 -0
  961. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  962. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  963. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  964. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  965. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  966. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  967. package/{Libraries/Components/Image/NativeImageLoaderHarmony.js → src/private/specs/modules/NativeImageLoaderIOS.js} +4 -5
  968. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  969. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  970. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  971. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  972. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  973. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  974. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  975. package/src/private/specs/modules/NativeLogBox.js +20 -0
  976. package/src/private/specs/modules/NativeModalManager.js +21 -0
  977. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  978. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  979. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  980. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  981. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  982. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +103 -0
  983. package/src/private/specs/modules/NativeReactDevToolsSettingsManager.js +22 -0
  984. package/src/private/specs/modules/NativeRedBox.js +20 -0
  985. package/src/private/specs/modules/NativeSampleTurboModule.js +66 -0
  986. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  987. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  988. package/src/private/specs/modules/NativeShareModule.js +23 -0
  989. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  990. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  991. package/{Libraries/Components/StatusBar/NativeStatusBarManagerHarmony.js → src/private/specs/modules/NativeStatusBarManagerAndroid.js} +10 -13
  992. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  993. package/src/private/specs/modules/NativeTiming.js +26 -0
  994. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  995. package/src/private/specs/modules/NativeUIManager.js +111 -0
  996. package/src/private/specs/modules/NativeVibration.js +24 -0
  997. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  998. package/src/private/styles/composeStyles.js +27 -0
  999. package/src/private/webapis/dom/geometry/DOMRect.js +82 -0
  1000. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +188 -0
  1001. package/src/private/webapis/dom/nodes/ReactNativeElement.js +188 -0
  1002. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +71 -0
  1003. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +247 -0
  1004. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +359 -0
  1005. package/src/private/webapis/dom/nodes/ReadOnlyText.js +30 -0
  1006. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  1007. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  1008. package/src/private/webapis/dom/nodes/utilities/Traversal.js +54 -0
  1009. package/src/private/webapis/dom/oldstylecollections/ArrayLikeUtils.js +46 -0
  1010. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +76 -0
  1011. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js.flow +27 -0
  1012. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +82 -0
  1013. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +27 -0
  1014. package/src/private/webapis/dom/oldstylecollections/NodeList.js +104 -0
  1015. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +31 -0
  1016. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  1017. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +345 -0
  1018. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +167 -0
  1019. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +277 -0
  1020. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +42 -0
  1021. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +181 -0
  1022. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  1023. package/src/private/webapis/mutationobserver/MutationObserver.js +186 -0
  1024. package/src/private/webapis/mutationobserver/MutationObserverManager.js +227 -0
  1025. package/src/private/webapis/mutationobserver/MutationRecord.js +82 -0
  1026. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +58 -0
  1027. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +327 -0
  1028. package/src/private/webapis/performance/EventTiming.js +145 -0
  1029. package/src/private/webapis/performance/LongTasks.js +39 -0
  1030. package/src/private/webapis/performance/MemoryInfo.js +54 -0
  1031. package/src/private/webapis/performance/Performance.js +299 -0
  1032. package/src/private/webapis/performance/PerformanceEntry.js +68 -0
  1033. package/src/private/webapis/performance/PerformanceObserver.js +232 -0
  1034. package/src/private/webapis/performance/RawPerformanceEntry.js +105 -0
  1035. package/src/private/webapis/performance/ReactNativeStartupTiming.js +91 -0
  1036. package/src/private/webapis/performance/UserTiming.js +72 -0
  1037. package/src/private/webapis/performance/Utilities.js +18 -0
  1038. package/src/private/webapis/performance/specs/NativePerformance.js +103 -0
  1039. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  1040. package/tsconfig.json +10 -4
  1041. package/types/index.d.ts +204 -97
  1042. package/types/index.harmony.d.ts +99 -0
  1043. package/types/modules/BatchedBridge.d.ts +32 -0
  1044. package/types/modules/Codegen.d.ts +80 -0
  1045. package/types/modules/Devtools.d.ts +32 -0
  1046. package/types/modules/LaunchScreen.d.ts +18 -0
  1047. package/types/modules/globals.d.ts +599 -0
  1048. package/types/private/TimerMixin.d.ts +19 -0
  1049. package/types/private/Utilities.d.ts +10 -0
  1050. package/types/public/DeprecatedPropertiesAlias.d.ts +185 -0
  1051. package/types/public/Insets.d.ts +15 -0
  1052. package/types/public/ReactNativeRenderer.d.ts +144 -0
  1053. package/types/public/ReactNativeTypes.d.ts +139 -0
  1054. package/types/tsconfig.json +15 -0
  1055. package/types/tslint.json +24 -0
  1056. package/Libraries/Alert/Alert.harmony.js +0 -77
  1057. package/Libraries/Animated/NativeAnimatedHelper.harmony.js +0 -601
  1058. package/Libraries/Components/Image/Image.flow.harmony.js +0 -53
  1059. package/Libraries/Components/Image/Image.harmony.js +0 -317
  1060. package/Libraries/Components/TextInput/TextInputState.harmony.js +0 -220
  1061. package/Libraries/Components/Touchable/TouchableWithoutFeedback.harmony.js +0 -227
  1062. package/Libraries/Core/setUpReactDevTools.harmony.js +0 -93
  1063. package/Libraries/Settings/Settings.harmony.js +0 -15
  1064. package/Libraries/StyleSheet/NativePlatformColor.ts +0 -8
  1065. package/Libraries/Utilities/NativePlatformConstants.harmony.ts +0 -8
  1066. package/Libraries/Vibration/Vibration.harmony.js +0 -88
  1067. package/harmony/.keep +0 -0
  1068. package/harmony/rnoh-hvigor-plugin-0.2.0.tgz +0 -0
  1069. package/react_native_openharmony_release.har +0 -0
@@ -8,77 +8,51 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- //RNOH: patch - fix imports
12
- import type { HostComponent } from "react-native/Libraries/Renderer/shims/ReactNativeTypes";
13
- import type { EdgeInsetsProp } from "react-native/Libraries/StyleSheet/EdgeInsetsPropType";
14
- import type { PointProp } from "react-native/Libraries/StyleSheet/PointPropType";
15
- import type { ViewStyleProp } from "react-native/Libraries/StyleSheet/StyleSheet";
16
- import type { ColorValue } from "react-native/Libraries/StyleSheet/StyleSheet";
11
+ import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
12
+ import type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
13
+ import type {PointProp} from '../../StyleSheet/PointPropType';
14
+ import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
15
+ import type {ColorValue} from '../../StyleSheet/StyleSheet';
17
16
  import type {
18
17
  LayoutEvent,
19
18
  PressEvent,
20
19
  ScrollEvent,
21
- } from "react-native/Libraries/Types/CoreEventTypes";
22
- import type { EventSubscription } from "react-native/Libraries/vendor/emitter/EventEmitter";
23
- import type {
24
- KeyboardEvent,
25
- KeyboardMetrics,
26
- } from "react-native/Libraries/Components/Keyboard/Keyboard";
27
- import type { ViewProps } from "react-native/Libraries/Components/View/ViewPropTypes";
28
- import type { Props as ScrollViewStickyHeaderProps } from "react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader";
29
-
30
- import AnimatedImplementation from "react-native/Libraries/Animated/AnimatedImplementation";
31
- import FrameRateLogger from "react-native/Libraries/Interaction/FrameRateLogger";
32
- import { findNodeHandle } from "react-native/Libraries/ReactNative/RendererProxy";
33
- import UIManager from "react-native/Libraries/ReactNative/UIManager";
34
- import flattenStyle from "react-native/Libraries/StyleSheet/flattenStyle";
35
- import splitLayoutProps from "react-native/Libraries/StyleSheet/splitLayoutProps";
36
- import StyleSheet from "react-native/Libraries/StyleSheet/StyleSheet";
37
- import Dimensions from "react-native/Libraries/Utilities/Dimensions";
38
- import dismissKeyboard from "react-native/Libraries/Utilities/dismissKeyboard";
39
- import Platform from "../../Utilities/Platform";
40
- import Keyboard from "react-native/Libraries/Components/Keyboard/Keyboard";
41
- import TextInputState from "../TextInput/TextInputState.harmony";
42
- import View from "react-native/Libraries/Components/View/View";
43
- import AndroidHorizontalScrollContentViewNativeComponent from "react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent";
44
- import AndroidHorizontalScrollViewNativeComponent from "react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent";
45
- import processDecelerationRate from "./processDecelerationRate";
46
- import ScrollContentViewNativeComponent from "react-native/Libraries/Components/ScrollView/ScrollContentViewNativeComponent";
47
- import Commands from "react-native/Libraries/Components/ScrollView/ScrollViewCommands";
48
- import ScrollViewContext, {
49
- HORIZONTAL,
50
- VERTICAL,
51
- } from "react-native/Libraries/Components/ScrollView/ScrollViewContext";
52
- import ScrollViewNativeComponent from "react-native/Libraries/Components/ScrollView/ScrollViewNativeComponent";
53
- import ScrollViewStickyHeader from "react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader";
54
- import invariant from "invariant";
55
- import memoize from "memoize-one";
56
- import nullthrows from "nullthrows";
57
- import * as React from "react";
58
-
59
- if (Platform.OS === "ios") {
60
- require("react-native/Libraries/Renderer/shims/ReactNative"); // Force side effects to prevent T55744311
61
- }
62
-
63
- const { NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple } =
64
- Platform.OS === "android"
65
- ? {
66
- NativeHorizontalScrollViewTuple: [
67
- AndroidHorizontalScrollViewNativeComponent,
68
- AndroidHorizontalScrollContentViewNativeComponent,
69
- ],
70
- NativeVerticalScrollViewTuple: [ScrollViewNativeComponent, View],
71
- }
72
- : {
73
- NativeHorizontalScrollViewTuple: [
74
- ScrollViewNativeComponent,
75
- ScrollContentViewNativeComponent,
76
- ],
77
- NativeVerticalScrollViewTuple: [
78
- ScrollViewNativeComponent,
79
- ScrollContentViewNativeComponent,
80
- ],
81
- };
20
+ } from '../../Types/CoreEventTypes';
21
+ import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
22
+ import type {KeyboardEvent, KeyboardMetrics} from '../Keyboard/Keyboard';
23
+ import typeof View from '../View/View';
24
+ import type {ViewProps} from '../View/ViewPropTypes';
25
+ import type {Props as ScrollViewStickyHeaderProps} from './ScrollViewStickyHeader';
26
+
27
+ import {
28
+ HScrollContentViewNativeComponent,
29
+ HScrollViewNativeComponent,
30
+ } from '../../../src/private/components/HScrollViewNativeComponents';
31
+ import {
32
+ VScrollContentViewNativeComponent,
33
+ VScrollViewNativeComponent,
34
+ } from '../../../src/private/components/VScrollViewNativeComponents';
35
+ import AnimatedImplementation from '../../Animated/AnimatedImplementation';
36
+ import FrameRateLogger from '../../Interaction/FrameRateLogger';
37
+ import {findNodeHandle} from '../../ReactNative/RendererProxy';
38
+ import UIManager from '../../ReactNative/UIManager';
39
+ import flattenStyle from '../../StyleSheet/flattenStyle';
40
+ import splitLayoutProps from '../../StyleSheet/splitLayoutProps';
41
+ import StyleSheet from '../../StyleSheet/StyleSheet';
42
+ import Dimensions from '../../Utilities/Dimensions';
43
+ import dismissKeyboard from '../../Utilities/dismissKeyboard';
44
+ import Platform from '../../Utilities/Platform';
45
+ import Keyboard from '../Keyboard/Keyboard';
46
+ import TextInputState from '../TextInput/TextInputState';
47
+ import ScrollViewDelegate from './delegates/ScrollViewDelegate';
48
+ import processDecelerationRate from './processDecelerationRate';
49
+ import Commands from './ScrollViewCommands';
50
+ import ScrollViewContext, {HORIZONTAL, VERTICAL} from './ScrollViewContext';
51
+ import ScrollViewStickyHeader from './ScrollViewStickyHeader';
52
+ import invariant from 'invariant';
53
+ import memoize from 'memoize-one';
54
+ import nullthrows from 'nullthrows';
55
+ import * as React from 'react';
82
56
 
83
57
  /*
84
58
  * iOS scroll event timing nuances:
@@ -155,31 +129,30 @@ const { NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple } =
155
129
 
156
130
  // Public methods for ScrollView
157
131
  export type ScrollViewImperativeMethods = $ReadOnly<{|
158
- getScrollResponder: $PropertyType<ScrollView, "getScrollResponder">,
159
- getScrollableNode: $PropertyType<ScrollView, "getScrollableNode">,
160
- getInnerViewNode: $PropertyType<ScrollView, "getInnerViewNode">,
161
- getInnerViewRef: $PropertyType<ScrollView, "getInnerViewRef">,
162
- getNativeScrollRef: $PropertyType<ScrollView, "getNativeScrollRef">,
163
- scrollTo: $PropertyType<ScrollView, "scrollTo">,
164
- scrollToEnd: $PropertyType<ScrollView, "scrollToEnd">,
165
- flashScrollIndicators: $PropertyType<ScrollView, "flashScrollIndicators">,
166
- scrollResponderZoomTo: $PropertyType<ScrollView, "scrollResponderZoomTo">,
132
+ getScrollResponder: $PropertyType<ScrollView, 'getScrollResponder'>,
133
+ getScrollableNode: $PropertyType<ScrollView, 'getScrollableNode'>,
134
+ getInnerViewNode: $PropertyType<ScrollView, 'getInnerViewNode'>,
135
+ getInnerViewRef: $PropertyType<ScrollView, 'getInnerViewRef'>,
136
+ getNativeScrollRef: $PropertyType<ScrollView, 'getNativeScrollRef'>,
137
+ scrollTo: $PropertyType<ScrollView, 'scrollTo'>,
138
+ scrollToEnd: $PropertyType<ScrollView, 'scrollToEnd'>,
139
+ flashScrollIndicators: $PropertyType<ScrollView, 'flashScrollIndicators'>,
140
+ scrollResponderZoomTo: $PropertyType<ScrollView, 'scrollResponderZoomTo'>,
167
141
  scrollResponderScrollNativeHandleToKeyboard: $PropertyType<
168
142
  ScrollView,
169
- "scrollResponderScrollNativeHandleToKeyboard"
143
+ 'scrollResponderScrollNativeHandleToKeyboard',
170
144
  >,
171
145
  |}>;
172
146
 
173
- export type DecelerationRateType = "fast" | "normal" | number;
147
+ export type DecelerationRateType = 'fast' | 'normal' | number;
174
148
  export type ScrollResponderType = ScrollViewImperativeMethods;
175
149
 
176
- type NativeScrollViewInstance = React.ElementRef<HostComponent<mixed>>;
177
150
  type PublicScrollViewInstance = $ReadOnly<{|
178
- ...$Exact<NativeScrollViewInstance>,
151
+ ...HostInstance,
179
152
  ...ScrollViewImperativeMethods,
180
153
  |}>;
181
154
 
182
- type InnerViewInstance = React.ElementRef<typeof View>;
155
+ type InnerViewInstance = React.ElementRef<View>;
183
156
 
184
157
  type IOSProps = $ReadOnly<{|
185
158
  /**
@@ -260,7 +233,7 @@ type IOSProps = $ReadOnly<{|
260
233
  *
261
234
  * @platform ios
262
235
  */
263
- indicatorStyle?: ?("default" | "black" | "white"),
236
+ indicatorStyle?: ?('default' | 'black' | 'white'),
264
237
  /**
265
238
  * When true, the ScrollView will try to lock to only vertical or horizontal
266
239
  * scrolling while dragging. The default value is false.
@@ -273,33 +246,6 @@ type IOSProps = $ReadOnly<{|
273
246
  * @platform ios
274
247
  */
275
248
  canCancelContentTouches?: ?boolean,
276
- /**
277
- * When set, the scroll view will adjust the scroll position so that the first child that is
278
- * currently visible and at or beyond `minIndexForVisible` will not change position. This is
279
- * useful for lists that are loading content in both directions, e.g. a chat thread, where new
280
- * messages coming in might otherwise cause the scroll position to jump. A value of 0 is common,
281
- * but other values such as 1 can be used to skip loading spinners or other content that should
282
- * not maintain position.
283
- *
284
- * The optional `autoscrollToTopThreshold` can be used to make the content automatically scroll
285
- * to the top after making the adjustment if the user was within the threshold of the top before
286
- * the adjustment was made. This is also useful for chat-like applications where you want to see
287
- * new messages scroll into place, but not if the user has scrolled up a ways and it would be
288
- * disruptive to scroll a bunch.
289
- *
290
- * Caveat 1: Reordering elements in the scrollview with this enabled will probably cause
291
- * jumpiness and jank. It can be fixed, but there are currently no plans to do so. For now,
292
- * don't re-order the content of any ScrollViews or Lists that use this feature.
293
- *
294
- * Caveat 2: This simply uses `contentOffset` and `frame.origin` in native code to compute
295
- * visibility. Occlusion, transforms, and other complexity won't be taken into account as to
296
- * whether content is "visible" or not.
297
- *
298
- */
299
- maintainVisibleContentPosition?: ?$ReadOnly<{|
300
- minIndexForVisible: number,
301
- autoscrollToTopThreshold?: ?number,
302
- |}>,
303
249
  /**
304
250
  * The maximum allowed zoom scale. The default value is 1.0.
305
251
  * @platform ios
@@ -357,10 +303,10 @@ type IOSProps = $ReadOnly<{|
357
303
  * @platform ios
358
304
  */
359
305
  contentInsetAdjustmentBehavior?: ?(
360
- | "automatic"
361
- | "scrollableAxes"
362
- | "never"
363
- | "always"
306
+ | 'automatic'
307
+ | 'scrollableAxes'
308
+ | 'never'
309
+ | 'always'
364
310
  ),
365
311
  |}>;
366
312
 
@@ -399,7 +345,7 @@ type AndroidProps = $ReadOnly<{|
399
345
  *
400
346
  * @platform android
401
347
  */
402
- overScrollMode?: ?("auto" | "always" | "never"),
348
+ overScrollMode?: ?('auto' | 'always' | 'never'),
403
349
  /**
404
350
  * Causes the scrollbars not to turn transparent when they are not in use.
405
351
  * The default value is false.
@@ -421,10 +367,10 @@ type AndroidProps = $ReadOnly<{|
421
367
  fadingEdgeLength?: ?number,
422
368
  |}>;
423
369
 
424
- type StickyHeaderComponentType = React.AbstractComponent<
425
- ScrollViewStickyHeaderProps,
426
- $ReadOnly<interface { setNextHeaderY: (number) => void }>
427
- >;
370
+ type StickyHeaderComponentType = component(
371
+ ref?: React.RefSetter<$ReadOnly<interface {setNextHeaderY: number => void}>>,
372
+ ...ScrollViewStickyHeaderProps
373
+ );
428
374
 
429
375
  export type Props = $ReadOnly<{|
430
376
  ...ViewProps,
@@ -472,6 +418,20 @@ export type Props = $ReadOnly<{|
472
418
  * - `'fast'`: 0.99 on iOS, 0.9 on Android
473
419
  */
474
420
  decelerationRate?: ?DecelerationRateType,
421
+
422
+ /**
423
+ * *Experimental, iOS Only*. The API is experimental and will change in future releases.
424
+ *
425
+ * Controls how much distance is travelled after user stops scrolling.
426
+ * Value greater than 1 will increase the distance travelled.
427
+ * Value less than 1 will decrease the distance travelled.
428
+ *
429
+ * @deprecated
430
+ *
431
+ * The default value is 1.
432
+ */
433
+ experimental_endDraggingSensitivityMultiplier?: ?number,
434
+
475
435
  /**
476
436
  * When true, the scroll view's children are arranged horizontally in a row
477
437
  * instead of vertically in a column. The default value is false.
@@ -498,7 +458,7 @@ export type Props = $ReadOnly<{|
498
458
  */
499
459
  keyboardDismissMode?: ?// default
500
460
  // cross-platform
501
- ("none" | "on-drag" | "interactive"), // ios only
461
+ ('none' | 'on-drag' | 'interactive'), // ios only
502
462
  /**
503
463
  * Determines when the keyboard should stay visible after a tap.
504
464
  *
@@ -511,7 +471,34 @@ export type Props = $ReadOnly<{|
511
471
  * - `false`, deprecated, use 'never' instead
512
472
  * - `true`, deprecated, use 'always' instead
513
473
  */
514
- keyboardShouldPersistTaps?: ?("always" | "never" | "handled" | true | false),
474
+ keyboardShouldPersistTaps?: ?('always' | 'never' | 'handled' | true | false),
475
+ /**
476
+ * When set, the scroll view will adjust the scroll position so that the first child that is
477
+ * partially or fully visible and at or beyond `minIndexForVisible` will not change position.
478
+ * This is useful for lists that are loading content in both directions, e.g. a chat thread,
479
+ * where new messages coming in might otherwise cause the scroll position to jump. A value of 0
480
+ * is common, but other values such as 1 can be used to skip loading spinners or other content
481
+ * that should not maintain position.
482
+ *
483
+ * The optional `autoscrollToTopThreshold` can be used to make the content automatically scroll
484
+ * to the top after making the adjustment if the user was within the threshold of the top before
485
+ * the adjustment was made. This is also useful for chat-like applications where you want to see
486
+ * new messages scroll into place, but not if the user has scrolled up a ways and it would be
487
+ * disruptive to scroll a bunch.
488
+ *
489
+ * Caveat 1: Reordering elements in the scrollview with this enabled will probably cause
490
+ * jumpiness and jank. It can be fixed, but there are currently no plans to do so. For now,
491
+ * don't re-order the content of any ScrollViews or Lists that use this feature.
492
+ *
493
+ * Caveat 2: This simply uses `contentOffset` and `frame.origin` in native code to compute
494
+ * visibility. Occlusion, transforms, and other complexity won't be taken into account as to
495
+ * whether content is "visible" or not.
496
+ *
497
+ */
498
+ maintainVisibleContentPosition?: ?$ReadOnly<{|
499
+ minIndexForVisible: number,
500
+ autoscrollToTopThreshold?: ?number,
501
+ |}>,
515
502
  /**
516
503
  * Called when the momentum scroll starts (scroll which occurs as the ScrollView glides to a stop).
517
504
  */
@@ -522,8 +509,7 @@ export type Props = $ReadOnly<{|
522
509
  onMomentumScrollEnd?: ?(event: ScrollEvent) => void,
523
510
 
524
511
  /**
525
- * Fires at most once per frame during scrolling. The frequency of the
526
- * events can be controlled using the `scrollEventThrottle` prop.
512
+ * Fires at most once per frame during scrolling.
527
513
  */
528
514
  onScroll?: ?(event: ScrollEvent) => void,
529
515
  /**
@@ -553,8 +539,6 @@ export type Props = $ReadOnly<{|
553
539
  * When true, the scroll view stops on multiples of the scroll view's size
554
540
  * when scrolling. This can be used for horizontal pagination. The default
555
541
  * value is false.
556
- *
557
- * Note: Vertical pagination is not supported on Android.
558
542
  */
559
543
  pagingEnabled?: ?boolean,
560
544
  /**
@@ -565,19 +549,10 @@ export type Props = $ReadOnly<{|
565
549
  */
566
550
  scrollEnabled?: ?boolean,
567
551
  /**
568
- * This controls how often the scroll event will be fired while scrolling
569
- * (as a time interval in ms). A lower number yields better accuracy for code
570
- * that is tracking the scroll position, but can lead to scroll performance
571
- * problems due to the volume of information being send over the bridge.
572
- *
573
- * Values between 0 and 17ms indicate 60fps updates are needed and throttling
574
- * will be disabled.
575
- *
576
- * If you do not need precise scroll position tracking, set this value higher
577
- * to limit the information being sent across the bridge.
578
- *
579
- * The default value is zero, which results in the scroll event being sent only
580
- * once each time the view is scrolled.
552
+ * Limits how often scroll events will be fired while scrolling, specified as
553
+ * a time interval in ms. This may be useful when expensive work is performed
554
+ * in response to scrolling. Values <= `16` will disable throttling,
555
+ * regardless of the refresh rate of the device.
581
556
  */
582
557
  scrollEventThrottle?: ?number,
583
558
  /**
@@ -613,7 +588,7 @@ export type Props = $ReadOnly<{|
613
588
  * - `'center'` will align the snap in the center
614
589
  * - `'end'` will align the snap at the right (horizontal) or bottom (vertical)
615
590
  */
616
- snapToAlignment?: ?("start" | "center" | "end"),
591
+ snapToAlignment?: ?('start' | 'center' | 'end'),
617
592
  /**
618
593
  * When set, causes the scroll view to stop at multiples of the value of
619
594
  * `snapToInterval`. This can be used for paginating through children
@@ -664,26 +639,24 @@ export type Props = $ReadOnly<{|
664
639
  */
665
640
  /* $FlowFixMe[unclear-type] - how to handle generic type without existential
666
641
  * operator? */
667
- refreshControl?: ?React.Element<any>,
642
+ refreshControl?: ?ExactReactElement_DEPRECATED<any>,
668
643
  children?: React.Node,
669
644
  /**
670
645
  * A ref to the inner View element of the ScrollView. This should be used
671
646
  * instead of calling `getInnerViewRef`.
672
647
  */
673
- innerViewRef?: ForwardedRef<InnerViewInstance>,
648
+ innerViewRef?: React.RefSetter<InnerViewInstance>,
674
649
  /**
675
650
  * A ref to the Native ScrollView component. This ref can be used to call
676
651
  * all of ScrollView's public methods, in addition to native methods like
677
652
  * measure, measureLayout, etc.
678
653
  */
679
- scrollViewRef?: ForwardedRef<PublicScrollViewInstance>,
654
+ scrollViewRef?: React.RefSetter<PublicScrollViewInstance>,
680
655
  |}>;
681
656
 
682
657
  type State = {|
683
658
  layoutHeight: ?number,
684
- // RNOH patch - resolving flashScrollIndicators command on the JS side
685
- // as it is currently not feasible on the native side
686
- showScrollIndicator: boolean,
659
+ showScrollIndicator: boolean, // RNC_patch
687
660
  |};
688
661
 
689
662
  const IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;
@@ -730,17 +703,20 @@ export type ScrollViewComponentStatics = $ReadOnly<{|
730
703
  class ScrollView extends React.Component<Props, State> {
731
704
  static Context: typeof ScrollViewContext = ScrollViewContext;
732
705
 
706
+ _delegate: ScrollViewDelegate;
707
+
733
708
  constructor(props: Props) {
734
709
  super(props);
735
-
710
+ // RNOH patch - resolving flashScrollIndicators command on the JS side
736
711
  this._scrollAnimatedValue = new AnimatedImplementation.Value(
737
- this.props.contentOffset?.y ?? 0
712
+ this.props.contentOffset?.y ?? 0,
738
713
  );
739
714
  this._scrollAnimatedValue.setOffset(this.props.contentInset?.top ?? 0);
715
+ this._delegate = new ScrollViewDelegate({});
740
716
  }
741
717
 
742
718
  _scrollAnimatedValue: AnimatedImplementation.Value;
743
- _scrollAnimatedValueAttachment: ?{ detach: () => void, ... } = null;
719
+ _scrollAnimatedValueAttachment: ?{detach: () => void, ...} = null;
744
720
  _stickyHeaderRefs: Map<string, React.ElementRef<StickyHeaderComponentType>> =
745
721
  new Map();
746
722
  _headerLayoutYs: Map<string, number> = new Map();
@@ -769,20 +745,18 @@ class ScrollView extends React.Component<Props, State> {
769
745
 
770
746
  state: State = {
771
747
  layoutHeight: null,
772
- // RNOH patch - resolving flashScrollIndicators command on the JS side
773
- // as it is currently not feasible on the native side
774
- showScrollIndicator: false,
748
+ showScrollIndicator: false, // RNC_patch
775
749
  };
776
750
 
777
751
  componentDidMount() {
778
- if (typeof this.props.keyboardShouldPersistTaps === "boolean") {
752
+ if (typeof this.props.keyboardShouldPersistTaps === 'boolean') {
779
753
  console.warn(
780
754
  `'keyboardShouldPersistTaps={${
781
- this.props.keyboardShouldPersistTaps === true ? "true" : "false"
755
+ this.props.keyboardShouldPersistTaps === true ? 'true' : 'false'
782
756
  }}' is deprecated. ` +
783
757
  `Use 'keyboardShouldPersistTaps="${
784
- this.props.keyboardShouldPersistTaps ? "always" : "never"
785
- }"' instead`
758
+ this.props.keyboardShouldPersistTaps ? 'always' : 'never'
759
+ }"' instead`,
786
760
  );
787
761
  }
788
762
 
@@ -790,20 +764,20 @@ class ScrollView extends React.Component<Props, State> {
790
764
  this._additionalScrollOffset = 0;
791
765
 
792
766
  this._subscriptionKeyboardWillShow = Keyboard.addListener(
793
- "keyboardWillShow",
794
- this.scrollResponderKeyboardWillShow
767
+ 'keyboardWillShow',
768
+ this.scrollResponderKeyboardWillShow,
795
769
  );
796
770
  this._subscriptionKeyboardWillHide = Keyboard.addListener(
797
- "keyboardWillHide",
798
- this.scrollResponderKeyboardWillHide
771
+ 'keyboardWillHide',
772
+ this.scrollResponderKeyboardWillHide,
799
773
  );
800
774
  this._subscriptionKeyboardDidShow = Keyboard.addListener(
801
- "keyboardDidShow",
802
- this.scrollResponderKeyboardDidShow
775
+ 'keyboardDidShow',
776
+ this.scrollResponderKeyboardDidShow,
803
777
  );
804
778
  this._subscriptionKeyboardDidHide = Keyboard.addListener(
805
- "keyboardDidHide",
806
- this.scrollResponderKeyboardDidHide
779
+ 'keyboardDidHide',
780
+ this.scrollResponderKeyboardDidHide,
807
781
  );
808
782
 
809
783
  this._updateAnimatedNodeAttachment();
@@ -854,7 +828,7 @@ class ScrollView extends React.Component<Props, State> {
854
828
  };
855
829
 
856
830
  getScrollableNode: () => ?number = () => {
857
- return findNodeHandle(this._scrollView.nativeInstance);
831
+ return findNodeHandle(this.getNativeScrollRef());
858
832
  };
859
833
 
860
834
  getInnerViewNode: () => ?number = () => {
@@ -865,7 +839,7 @@ class ScrollView extends React.Component<Props, State> {
865
839
  return this._innerView.nativeInstance;
866
840
  };
867
841
 
868
- getNativeScrollRef: () => NativeScrollViewInstance | null = () => {
842
+ getNativeScrollRef: () => HostInstance | null = () => {
869
843
  return this._scrollView.nativeInstance;
870
844
  };
871
845
 
@@ -890,7 +864,7 @@ class ScrollView extends React.Component<Props, State> {
890
864
  }
891
865
  | number,
892
866
  deprecatedX?: number,
893
- deprecatedAnimated?: boolean
867
+ deprecatedAnimated?: boolean,
894
868
  ) => void = (
895
869
  options?:
896
870
  | {
@@ -901,13 +875,13 @@ class ScrollView extends React.Component<Props, State> {
901
875
  }
902
876
  | number,
903
877
  deprecatedX?: number,
904
- deprecatedAnimated?: boolean
878
+ deprecatedAnimated?: boolean,
905
879
  ) => {
906
880
  let x, y, animated;
907
- if (typeof options === "number") {
881
+ if (typeof options === 'number') {
908
882
  console.warn(
909
- "`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, " +
910
- "animated: true})` instead."
883
+ '`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, ' +
884
+ 'animated: true})` instead.',
911
885
  );
912
886
  y = options;
913
887
  x = deprecatedX;
@@ -917,15 +891,11 @@ class ScrollView extends React.Component<Props, State> {
917
891
  x = options.x;
918
892
  animated = options.animated;
919
893
  }
920
- if (this._scrollView.nativeInstance == null) {
894
+ const component = this.getNativeScrollRef();
895
+ if (component == null) {
921
896
  return;
922
897
  }
923
- Commands.scrollTo(
924
- this._scrollView.nativeInstance,
925
- x || 0,
926
- y || 0,
927
- animated !== false
928
- );
898
+ Commands.scrollTo(component, x || 0, y || 0, animated !== false);
929
899
  };
930
900
 
931
901
  /**
@@ -936,15 +906,16 @@ class ScrollView extends React.Component<Props, State> {
936
906
  * `scrollToEnd({animated: false})` for immediate scrolling.
937
907
  * If no options are passed, `animated` defaults to true.
938
908
  */
939
- scrollToEnd: (options?: ?{ animated?: boolean, ... }) => void = (
940
- options?: ?{ animated?: boolean, ... }
909
+ scrollToEnd: (options?: ?{animated?: boolean, ...}) => void = (
910
+ options?: ?{animated?: boolean, ...},
941
911
  ) => {
942
912
  // Default to true
943
913
  const animated = (options && options.animated) !== false;
944
- if (this._scrollView.nativeInstance == null) {
914
+ const component = this.getNativeScrollRef();
915
+ if (component == null) {
945
916
  return;
946
917
  }
947
- Commands.scrollToEnd(this._scrollView.nativeInstance, animated);
918
+ Commands.scrollToEnd(component, animated);
948
919
  };
949
920
 
950
921
  /**
@@ -953,20 +924,16 @@ class ScrollView extends React.Component<Props, State> {
953
924
  * @platform ios
954
925
  */
955
926
  flashScrollIndicators: () => void = () => {
956
- // RNOH patch - resolving flashScrollIndicators command on the JS side
957
- // as it is currently not feasible on the native side
958
-
959
- // if (this._scrollView.nativeInstance == null) {
960
- // return;
961
- // }
962
- // Commands.flashScrollIndicators(this._scrollView.nativeInstance);
963
-
964
- this.state.showScrollIndicator = true;
927
+ // RNC_patch
928
+ this.setState(prev => ({...prev, showScrollIndicator: true}));
965
929
  setTimeout(() => {
966
- this.state.showScrollIndicator = false;
967
- this.forceUpdate();
930
+ this.setState(prev => ({...prev, showScrollIndicator: false}));
968
931
  }, 500);
969
- this.forceUpdate();
932
+ // const component = this.getNativeScrollRef();
933
+ // if (component == null) {
934
+ // return;
935
+ // }
936
+ // Commands.flashScrollIndicators(component);
970
937
  };
971
938
 
972
939
  /**
@@ -979,14 +946,14 @@ class ScrollView extends React.Component<Props, State> {
979
946
  * @param {bool} preventNegativeScrolling Whether to allow pulling the content
980
947
  * down to make it meet the keyboard's top. Default is false.
981
948
  */
982
- scrollResponderScrollNativeHandleToKeyboard: <T>(
983
- nodeHandle: number | React.ElementRef<HostComponent<T>>,
949
+ scrollResponderScrollNativeHandleToKeyboard: (
950
+ nodeHandle: number | HostInstance,
984
951
  additionalOffset?: number,
985
- preventNegativeScrollOffset?: boolean
986
- ) => void = <T>(
987
- nodeHandle: number | React.ElementRef<HostComponent<T>>,
952
+ preventNegativeScrollOffset?: boolean,
953
+ ) => void = (
954
+ nodeHandle: number | HostInstance,
988
955
  additionalOffset?: number,
989
- preventNegativeScrollOffset?: boolean
956
+ preventNegativeScrollOffset?: boolean,
990
957
  ) => {
991
958
  this._additionalScrollOffset = additionalOffset || 0;
992
959
  this._preventNegativeScrollOffset = !!preventNegativeScrollOffset;
@@ -995,20 +962,20 @@ class ScrollView extends React.Component<Props, State> {
995
962
  return;
996
963
  }
997
964
 
998
- if (typeof nodeHandle === "number") {
965
+ if (typeof nodeHandle === 'number') {
999
966
  UIManager.measureLayout(
1000
967
  nodeHandle,
1001
968
  nullthrows(findNodeHandle(this)),
1002
969
  // $FlowFixMe[method-unbinding] added when improving typing for this parameters
1003
970
  this._textInputFocusError,
1004
- this._inputMeasureAndScrollToKeyboard
971
+ this._inputMeasureAndScrollToKeyboard,
1005
972
  );
1006
973
  } else {
1007
974
  nodeHandle.measureLayout(
1008
975
  this._innerView.nativeInstance,
1009
976
  this._inputMeasureAndScrollToKeyboard,
1010
977
  // $FlowFixMe[method-unbinding] added when improving typing for this parameters
1011
- this._textInputFocusError
978
+ this._textInputFocusError,
1012
979
  );
1013
980
  }
1014
981
  };
@@ -1027,7 +994,7 @@ class ScrollView extends React.Component<Props, State> {
1027
994
  height: number,
1028
995
  animated?: boolean,
1029
996
  |},
1030
- animated?: boolean // deprecated, put this inside the rect argument instead
997
+ animated?: boolean, // deprecated, put this inside the rect argument instead
1031
998
  ) => void = (
1032
999
  rect: {|
1033
1000
  x: number,
@@ -1036,30 +1003,27 @@ class ScrollView extends React.Component<Props, State> {
1036
1003
  height: number,
1037
1004
  animated?: boolean,
1038
1005
  |},
1039
- animated?: boolean // deprecated, put this inside the rect argument instead
1006
+ animated?: boolean, // deprecated, put this inside the rect argument instead
1040
1007
  ) => {
1041
- invariant(Platform.OS === "ios", "zoomToRect is not implemented");
1042
- if ("animated" in rect) {
1008
+ invariant(Platform.OS === 'ios', 'zoomToRect is not implemented');
1009
+ if ('animated' in rect) {
1043
1010
  this._animated = rect.animated;
1044
1011
  delete rect.animated;
1045
- } else if (typeof animated !== "undefined") {
1012
+ } else if (typeof animated !== 'undefined') {
1046
1013
  console.warn(
1047
- "`scrollResponderZoomTo` `animated` argument is deprecated. Use `options.animated` instead"
1014
+ '`scrollResponderZoomTo` `animated` argument is deprecated. Use `options.animated` instead',
1048
1015
  );
1049
1016
  }
1050
1017
 
1051
- if (this._scrollView.nativeInstance == null) {
1018
+ const component = this.getNativeScrollRef();
1019
+ if (component == null) {
1052
1020
  return;
1053
1021
  }
1054
- Commands.zoomToRect(
1055
- this._scrollView.nativeInstance,
1056
- rect,
1057
- animated !== false
1058
- );
1022
+ Commands.zoomToRect(component, rect, animated !== false);
1059
1023
  };
1060
1024
 
1061
1025
  _textInputFocusError() {
1062
- console.warn("Error measuring text field.");
1026
+ console.warn('Error measuring text field.');
1063
1027
  }
1064
1028
 
1065
1029
  /**
@@ -1076,9 +1040,9 @@ class ScrollView extends React.Component<Props, State> {
1076
1040
  left: number,
1077
1041
  top: number,
1078
1042
  width: number,
1079
- height: number
1043
+ height: number,
1080
1044
  ) => void = (left: number, top: number, width: number, height: number) => {
1081
- let keyboardScreenY = Dimensions.get("window").height;
1045
+ let keyboardScreenY = Dimensions.get('window').height;
1082
1046
 
1083
1047
  const scrollTextInputIntoVisibleRect = () => {
1084
1048
  if (this._keyboardMetrics != null) {
@@ -1094,7 +1058,7 @@ class ScrollView extends React.Component<Props, State> {
1094
1058
  if (this._preventNegativeScrollOffset === true) {
1095
1059
  scrollOffsetY = Math.max(0, scrollOffsetY);
1096
1060
  }
1097
- this.scrollTo({ x: 0, y: scrollOffsetY, animated: true });
1061
+ this.scrollTo({x: 0, y: scrollOffsetY, animated: true});
1098
1062
 
1099
1063
  this._additionalScrollOffset = 0;
1100
1064
  this._preventNegativeScrollOffset = false;
@@ -1128,16 +1092,16 @@ class ScrollView extends React.Component<Props, State> {
1128
1092
  ) {
1129
1093
  this._scrollAnimatedValueAttachment =
1130
1094
  AnimatedImplementation.attachNativeEvent(
1131
- this._scrollView.nativeInstance,
1132
- "onScroll",
1133
- [{ nativeEvent: { contentOffset: { y: this._scrollAnimatedValue } } }]
1095
+ this.getNativeScrollRef(),
1096
+ 'onScroll',
1097
+ [{nativeEvent: {contentOffset: {y: this._scrollAnimatedValue}}}],
1134
1098
  );
1135
1099
  }
1136
1100
  }
1137
1101
 
1138
1102
  _setStickyHeaderRef(
1139
1103
  key: string,
1140
- ref: ?React.ElementRef<StickyHeaderComponentType>
1104
+ ref: ?React.ElementRef<StickyHeaderComponentType>,
1141
1105
  ) {
1142
1106
  if (ref) {
1143
1107
  this._stickyHeaderRefs.set(key, ref);
@@ -1147,7 +1111,7 @@ class ScrollView extends React.Component<Props, State> {
1147
1111
  }
1148
1112
 
1149
1113
  _onStickyHeaderLayout(index: $FlowFixMe, event: $FlowFixMe, key: $FlowFixMe) {
1150
- const { stickyHeaderIndices } = this.props;
1114
+ const {stickyHeaderIndices} = this.props;
1151
1115
  if (!stickyHeaderIndices) {
1152
1116
  return;
1153
1117
  }
@@ -1164,7 +1128,7 @@ class ScrollView extends React.Component<Props, State> {
1164
1128
  const previousHeaderIndex = stickyHeaderIndices[indexOfIndex - 1];
1165
1129
  if (previousHeaderIndex != null) {
1166
1130
  const previousHeader = this._stickyHeaderRefs.get(
1167
- this._getKeyForIndex(previousHeaderIndex, childArray)
1131
+ this._getKeyForIndex(previousHeaderIndex, childArray),
1168
1132
  );
1169
1133
  previousHeader &&
1170
1134
  previousHeader.setNextHeaderY &&
@@ -1173,28 +1137,13 @@ class ScrollView extends React.Component<Props, State> {
1173
1137
  }
1174
1138
 
1175
1139
  _handleScroll = (e: ScrollEvent) => {
1176
- if (__DEV__) {
1177
- if (
1178
- this.props.onScroll &&
1179
- this.props.scrollEventThrottle == null &&
1180
- Platform.OS === "ios"
1181
- ) {
1182
- console.log(
1183
- "You specified `onScroll` on a <ScrollView> but not " +
1184
- "`scrollEventThrottle`. You will only receive one event. " +
1185
- "Using `16` you get all the events but be aware that it may " +
1186
- "cause frame drops, use a bigger number if you don't need as " +
1187
- "much precision."
1188
- );
1189
- }
1190
- }
1191
1140
  this._observedScrollSinceBecomingResponder = true;
1192
1141
  this.props.onScroll && this.props.onScroll(e);
1193
1142
  };
1194
1143
 
1195
1144
  _handleLayout = (e: LayoutEvent) => {
1196
1145
  if (this.props.invertStickyHeaders === true) {
1197
- this.setState({ layoutHeight: e.nativeEvent.layout.height });
1146
+ this.setState({layoutHeight: e.nativeEvent.layout.height});
1198
1147
  }
1199
1148
  if (this.props.onLayout) {
1200
1149
  this.props.onLayout(e);
@@ -1202,21 +1151,18 @@ class ScrollView extends React.Component<Props, State> {
1202
1151
  };
1203
1152
 
1204
1153
  _handleContentOnLayout = (e: LayoutEvent) => {
1205
- const { width, height } = e.nativeEvent.layout;
1154
+ const {width, height} = e.nativeEvent.layout;
1206
1155
  this.props.onContentSizeChange &&
1207
1156
  this.props.onContentSizeChange(width, height);
1208
1157
  };
1209
1158
 
1210
1159
  _innerView: RefForwarder<InnerViewInstance, InnerViewInstance> =
1211
1160
  createRefForwarder(
1212
- (instance: InnerViewInstance): InnerViewInstance => instance
1161
+ (instance: InnerViewInstance): InnerViewInstance => instance,
1213
1162
  );
1214
1163
 
1215
- _scrollView: RefForwarder<
1216
- NativeScrollViewInstance,
1217
- PublicScrollViewInstance
1218
- > = createRefForwarder(
1219
- (nativeInstance: NativeScrollViewInstance): PublicScrollViewInstance => {
1164
+ _scrollView: RefForwarder<HostInstance, PublicScrollViewInstance | null> =
1165
+ createRefForwarder(nativeInstance => {
1220
1166
  // This is a hack. Ideally we would forwardRef to the underlying
1221
1167
  // host component. However, since ScrollView has it's own methods that can be
1222
1168
  // called as well, if we used the standard forwardRef then these
@@ -1240,12 +1186,11 @@ class ScrollView extends React.Component<Props, State> {
1240
1186
  scrollResponderZoomTo: this.scrollResponderZoomTo,
1241
1187
  scrollResponderScrollNativeHandleToKeyboard:
1242
1188
  this.scrollResponderScrollNativeHandleToKeyboard,
1243
- }
1189
+ },
1244
1190
  );
1245
1191
 
1246
1192
  return publicInstance;
1247
- }
1248
- );
1193
+ });
1249
1194
 
1250
1195
  /**
1251
1196
  * Warning, this may be called several times for a single keyboard opening.
@@ -1277,28 +1222,28 @@ class ScrollView extends React.Component<Props, State> {
1277
1222
  */
1278
1223
 
1279
1224
  scrollResponderKeyboardWillShow: (e: KeyboardEvent) => void = (
1280
- e: KeyboardEvent
1225
+ e: KeyboardEvent,
1281
1226
  ) => {
1282
1227
  this._keyboardMetrics = e.endCoordinates;
1283
1228
  this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);
1284
1229
  };
1285
1230
 
1286
1231
  scrollResponderKeyboardWillHide: (e: KeyboardEvent) => void = (
1287
- e: KeyboardEvent
1232
+ e: KeyboardEvent,
1288
1233
  ) => {
1289
1234
  this._keyboardMetrics = null;
1290
1235
  this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);
1291
1236
  };
1292
1237
 
1293
1238
  scrollResponderKeyboardDidShow: (e: KeyboardEvent) => void = (
1294
- e: KeyboardEvent
1239
+ e: KeyboardEvent,
1295
1240
  ) => {
1296
1241
  this._keyboardMetrics = e.endCoordinates;
1297
1242
  this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);
1298
1243
  };
1299
1244
 
1300
1245
  scrollResponderKeyboardDidHide: (e: KeyboardEvent) => void = (
1301
- e: KeyboardEvent
1246
+ e: KeyboardEvent,
1302
1247
  ) => {
1303
1248
  this._keyboardMetrics = null;
1304
1249
  this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);
@@ -1331,11 +1276,7 @@ class ScrollView extends React.Component<Props, State> {
1331
1276
  _handleScrollBeginDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {
1332
1277
  FrameRateLogger.beginScroll(); // TODO: track all scrolls after implementing onScrollEndAnimation
1333
1278
 
1334
- if (
1335
- // RNOH: patch - add support for OpenHarmony
1336
- (Platform.OS === "android" || Platform.OS === "harmony") &&
1337
- this.props.keyboardDismissMode === "on-drag"
1338
- ) {
1279
+ if (this._delegate.shouldDismissKeyboardOnScrollBeginDrag(this.props)) {
1339
1280
  dismissKeyboard();
1340
1281
  }
1341
1282
 
@@ -1346,7 +1287,7 @@ class ScrollView extends React.Component<Props, State> {
1346
1287
  * Invoke this from an `onScrollEndDrag` event.
1347
1288
  */
1348
1289
  _handleScrollEndDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {
1349
- const { velocity } = e.nativeEvent;
1290
+ const {velocity} = e.nativeEvent;
1350
1291
  // - If we are animating, then this is a "drag" that is stopping the scrollview and momentum end
1351
1292
  // will fire.
1352
1293
  // - If velocity is non-zero, then the interaction will stop when momentum scroll ends or
@@ -1404,10 +1345,10 @@ class ScrollView extends React.Component<Props, State> {
1404
1345
  this._isTouching = e.nativeEvent.touches.length !== 0;
1405
1346
  this.props.onResponderRelease && this.props.onResponderRelease(e);
1406
1347
 
1407
- if (typeof e.target === "number") {
1348
+ if (typeof e.target === 'number') {
1408
1349
  if (__DEV__) {
1409
1350
  console.error(
1410
- "Did not expect event target to be a number. Should have been a native component"
1351
+ 'Did not expect event target to be a number. Should have been a native component',
1411
1352
  );
1412
1353
  }
1413
1354
 
@@ -1420,7 +1361,7 @@ class ScrollView extends React.Component<Props, State> {
1420
1361
  if (
1421
1362
  currentlyFocusedTextInput != null &&
1422
1363
  this.props.keyboardShouldPersistTaps !== true &&
1423
- this.props.keyboardShouldPersistTaps !== "always" &&
1364
+ this.props.keyboardShouldPersistTaps !== 'always' &&
1424
1365
  this._keyboardIsDismissible() &&
1425
1366
  e.target !== currentlyFocusedTextInput &&
1426
1367
  !this._observedScrollSinceBecomingResponder &&
@@ -1486,7 +1427,7 @@ class ScrollView extends React.Component<Props, State> {
1486
1427
  *
1487
1428
  */
1488
1429
  _handleStartShouldSetResponder: (e: PressEvent) => boolean = (
1489
- e: PressEvent
1430
+ e: PressEvent,
1490
1431
  ) => {
1491
1432
  // Allow any event touch pass through if the default pan responder is disabled
1492
1433
  if (this.props.disableScrollViewPanResponder === true) {
@@ -1495,7 +1436,7 @@ class ScrollView extends React.Component<Props, State> {
1495
1436
 
1496
1437
  const currentlyFocusedInput = TextInputState.currentlyFocusedInput();
1497
1438
  if (
1498
- this.props.keyboardShouldPersistTaps === "handled" &&
1439
+ this.props.keyboardShouldPersistTaps === 'handled' &&
1499
1440
  this._keyboardIsDismissible() &&
1500
1441
  e.target !== currentlyFocusedInput
1501
1442
  ) {
@@ -1516,7 +1457,7 @@ class ScrollView extends React.Component<Props, State> {
1516
1457
  * Invoke this from an `onStartShouldSetResponderCapture` event.
1517
1458
  */
1518
1459
  _handleStartShouldSetResponderCapture: (e: PressEvent) => boolean = (
1519
- e: PressEvent
1460
+ e: PressEvent,
1520
1461
  ) => {
1521
1462
  // The scroll view should receive taps instead of its descendants if:
1522
1463
  // * it is already animating/decelerating
@@ -1533,14 +1474,14 @@ class ScrollView extends React.Component<Props, State> {
1533
1474
  // and a new touch starts with a non-textinput target (in which case the
1534
1475
  // first tap should be sent to the scroll view and dismiss the keyboard,
1535
1476
  // then the second tap goes to the actual interior view)
1536
- const { keyboardShouldPersistTaps } = this.props;
1477
+ const {keyboardShouldPersistTaps} = this.props;
1537
1478
  const keyboardNeverPersistTaps =
1538
- !keyboardShouldPersistTaps || keyboardShouldPersistTaps === "never";
1479
+ !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';
1539
1480
 
1540
- if (typeof e.target === "number") {
1481
+ if (typeof e.target === 'number') {
1541
1482
  if (__DEV__) {
1542
1483
  console.error(
1543
- "Did not expect event target to be a number. Should have been a native component"
1484
+ 'Did not expect event target to be a number. Should have been a native component',
1544
1485
  );
1545
1486
  }
1546
1487
 
@@ -1601,7 +1542,7 @@ class ScrollView extends React.Component<Props, State> {
1601
1542
  _keyboardEventsAreUnreliable: () => boolean = () => {
1602
1543
  // Android versions prior to API 30 rely on observing layout changes when
1603
1544
  // `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.
1604
- return Platform.OS === "android" && Platform.Version < 30;
1545
+ return Platform.OS === 'android' && Platform.Version < 30;
1605
1546
  };
1606
1547
 
1607
1548
  /**
@@ -1613,9 +1554,9 @@ class ScrollView extends React.Component<Props, State> {
1613
1554
  const nativeEvent = e.nativeEvent;
1614
1555
  this._isTouching = nativeEvent.touches.length !== 0;
1615
1556
 
1616
- const { keyboardShouldPersistTaps } = this.props;
1557
+ const {keyboardShouldPersistTaps} = this.props;
1617
1558
  const keyboardNeverPersistsTaps =
1618
- !keyboardShouldPersistTaps || keyboardShouldPersistTaps === "never";
1559
+ !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';
1619
1560
 
1620
1561
  // Dismiss the keyboard now if we didn't become responder in capture phase
1621
1562
  // to eat presses, but still want to dismiss on interaction.
@@ -1675,27 +1616,33 @@ class ScrollView extends React.Component<Props, State> {
1675
1616
  this.props.onTouchMove && this.props.onTouchMove(e);
1676
1617
  };
1677
1618
 
1678
- render(): React.Node | React.Element<string> {
1679
- const [NativeDirectionalScrollView, NativeDirectionalScrollContentView] =
1680
- this.props.horizontal === true
1681
- ? NativeHorizontalScrollViewTuple
1682
- : NativeVerticalScrollViewTuple;
1619
+ render(): React.Node {
1620
+ const horizontal = this.props.horizontal === true;
1621
+
1622
+ const NativeScrollView = horizontal
1623
+ ? HScrollViewNativeComponent
1624
+ : VScrollViewNativeComponent;
1625
+
1626
+ const NativeScrollContentView = horizontal
1627
+ ? HScrollContentViewNativeComponent
1628
+ : VScrollContentViewNativeComponent;
1683
1629
 
1684
1630
  const contentContainerStyle = [
1685
- this.props.horizontal === true && styles.contentContainerHorizontal,
1631
+ horizontal && styles.contentContainerHorizontal,
1686
1632
  this.props.contentContainerStyle,
1687
1633
  ];
1688
1634
  if (__DEV__ && this.props.style !== undefined) {
1689
1635
  // $FlowFixMe[underconstrained-implicit-instantiation]
1690
1636
  const style = flattenStyle(this.props.style);
1691
- const childLayoutProps = ["alignItems", "justifyContent"].filter(
1692
- (prop) => style && style[prop] !== undefined
1637
+ const childLayoutProps = ['alignItems', 'justifyContent'].filter(
1638
+ // $FlowFixMe[incompatible-use]
1639
+ prop => style && style[prop] !== undefined,
1693
1640
  );
1694
1641
  invariant(
1695
1642
  childLayoutProps.length === 0,
1696
- "ScrollView child layout (" +
1643
+ 'ScrollView child layout (' +
1697
1644
  JSON.stringify(childLayoutProps) +
1698
- ") must be applied through the contentContainerStyle prop."
1645
+ ') must be applied through the contentContainerStyle prop.',
1699
1646
  );
1700
1647
  }
1701
1648
 
@@ -1706,15 +1653,16 @@ class ScrollView extends React.Component<Props, State> {
1706
1653
  onLayout: this._handleContentOnLayout,
1707
1654
  };
1708
1655
 
1709
- const { stickyHeaderIndices } = this.props;
1656
+ const {stickyHeaderIndices} = this.props;
1710
1657
  let children = this.props.children;
1658
+ /**
1659
+ * This function can cause unnecessary remount when nested in conditionals as it causes remap of children keys.
1660
+ * https://react.dev/reference/react/Children#children-toarray-caveats
1661
+ */
1662
+ children = React.Children.toArray<$FlowFixMe>(children);
1711
1663
 
1712
1664
  if (stickyHeaderIndices != null && stickyHeaderIndices.length > 0) {
1713
- const childArray = React.Children.toArray<$FlowFixMe>(
1714
- this.props.children
1715
- );
1716
-
1717
- children = childArray.map((child, index) => {
1665
+ children = children.map((child, index) => {
1718
1666
  const indexOfIndex = child ? stickyHeaderIndices.indexOf(index) : -1;
1719
1667
  if (indexOfIndex > -1) {
1720
1668
  const key = child.key;
@@ -1724,19 +1672,15 @@ class ScrollView extends React.Component<Props, State> {
1724
1672
  return (
1725
1673
  <StickyHeaderComponent
1726
1674
  key={key}
1727
- nativeID={"StickyHeader-" + key} /* TODO: T68258846. */
1728
- ref={(ref) => this._setStickyHeaderRef(key, ref)}
1675
+ ref={ref => this._setStickyHeaderRef(key, ref)}
1729
1676
  nextHeaderLayoutY={this._headerLayoutYs.get(
1730
- this._getKeyForIndex(nextIndex, childArray)
1677
+ this._getKeyForIndex(nextIndex, children),
1731
1678
  )}
1732
- onLayout={(event) =>
1733
- this._onStickyHeaderLayout(index, event, key)
1734
- }
1679
+ onLayout={event => this._onStickyHeaderLayout(index, event, key)}
1735
1680
  scrollAnimatedValue={this._scrollAnimatedValue}
1736
1681
  inverted={this.props.invertStickyHeaders}
1737
1682
  hiddenOnScroll={this.props.stickyHeaderHiddenOnScroll}
1738
- scrollViewHeight={this.state.layoutHeight}
1739
- >
1683
+ scrollViewHeight={this.state.layoutHeight}>
1740
1684
  {child}
1741
1685
  </StickyHeaderComponent>
1742
1686
  );
@@ -1746,9 +1690,7 @@ class ScrollView extends React.Component<Props, State> {
1746
1690
  });
1747
1691
  }
1748
1692
  children = (
1749
- <ScrollViewContext.Provider
1750
- value={this.props.horizontal === true ? HORIZONTAL : VERTICAL}
1751
- >
1693
+ <ScrollViewContext.Provider value={horizontal ? HORIZONTAL : VERTICAL}>
1752
1694
  {children}
1753
1695
  </ScrollViewContext.Provider>
1754
1696
  );
@@ -1756,22 +1698,29 @@ class ScrollView extends React.Component<Props, State> {
1756
1698
  const hasStickyHeaders =
1757
1699
  Array.isArray(stickyHeaderIndices) && stickyHeaderIndices.length > 0;
1758
1700
 
1701
+ // Some ScrollView native component behaviors rely on using the metrics
1702
+ // of mounted views for anchoring. Make sure not to flatten children if
1703
+ // this is the case.
1704
+ const preserveChildren =
1705
+ this.props.maintainVisibleContentPosition != null ||
1706
+ (Platform.OS === 'android' && this.props.snapToAlignment != null);
1707
+
1759
1708
  const contentContainer = (
1760
- <NativeDirectionalScrollContentView
1709
+ <NativeScrollContentView
1761
1710
  {...contentSizeChangeProps}
1762
1711
  ref={this._innerView.getForwardingRef(this.props.innerViewRef)}
1763
1712
  style={contentContainerStyle}
1764
1713
  removeClippedSubviews={
1765
1714
  // Subview clipping causes issues with sticky headers on Android and
1766
1715
  // would be hard to fix properly in a performant way.
1767
- Platform.OS === "android" && hasStickyHeaders
1716
+ Platform.OS === 'android' && hasStickyHeaders
1768
1717
  ? false
1769
1718
  : this.props.removeClippedSubviews
1770
1719
  }
1771
1720
  collapsable={false}
1772
- >
1721
+ collapsableChildren={!preserveChildren}>
1773
1722
  {children}
1774
- </NativeDirectionalScrollContentView>
1723
+ </NativeScrollContentView>
1775
1724
  );
1776
1725
 
1777
1726
  const alwaysBounceHorizontal =
@@ -1784,12 +1733,12 @@ class ScrollView extends React.Component<Props, State> {
1784
1733
  ? this.props.alwaysBounceVertical
1785
1734
  : !this.props.horizontal;
1786
1735
 
1787
- const baseStyle =
1788
- this.props.horizontal === true
1789
- ? styles.baseHorizontal
1790
- : styles.baseVertical;
1736
+ const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;
1737
+
1738
+ const {experimental_endDraggingSensitivityMultiplier, ...otherProps} =
1739
+ this.props;
1791
1740
  const props = {
1792
- ...this.props,
1741
+ ...otherProps,
1793
1742
  alwaysBounceHorizontal,
1794
1743
  alwaysBounceVertical,
1795
1744
  style: StyleSheet.compose(baseStyle, this.props.style),
@@ -1814,6 +1763,8 @@ class ScrollView extends React.Component<Props, State> {
1814
1763
  onTouchStart: this._handleTouchStart,
1815
1764
  onTouchCancel: this._handleTouchCancel,
1816
1765
  onScroll: this._handleScroll,
1766
+ endDraggingSensitivityMultiplier:
1767
+ experimental_endDraggingSensitivityMultiplier,
1817
1768
  scrollEventThrottle: hasStickyHeaders
1818
1769
  ? 1
1819
1770
  : this.props.scrollEventThrottle,
@@ -1826,47 +1777,78 @@ class ScrollView extends React.Component<Props, State> {
1826
1777
  // default to true
1827
1778
  snapToEnd: this.props.snapToEnd !== false,
1828
1779
  // pagingEnabled is overridden by snapToInterval / snapToOffsets
1780
+ // RNC_patch: BEGIN
1829
1781
  pagingEnabled:
1830
1782
  this.props.pagingEnabled === true &&
1831
1783
  this.props.snapToInterval == null &&
1832
1784
  this.props.snapToOffsets == null,
1833
- // RNOH patch - resolving flashScrollIndicators command on the JS side
1834
- // as it is currently not feasible on the native side
1835
- showsVerticalScrollIndicator: (this.props.showsVerticalScrollIndicator ?? true) || this.state.showScrollIndicator,
1836
- showsHorizontalScrollIndicator: (this.props.showsHorizontalScrollIndicator ?? true) || this.state.showScrollIndicator,
1837
- persistentScrollbar: this.props.persistentScrollbar || this.state.showScrollIndicator,
1785
+ showsVerticalScrollIndicator:
1786
+ (this.props.showsVerticalScrollIndicator ?? true) ||
1787
+ this.state.showScrollIndicator,
1788
+ showsHorizontalScrollIndicator:
1789
+ (this.props.showsHorizontalScrollIndicator ?? true) ||
1790
+ this.state.showScrollIndicator,
1791
+ persistentScrollbar:
1792
+ this.props.persistentScrollbar || this.state.showScrollIndicator,
1793
+ // RNC_patch: END
1794
+ ...this._delegate.getCustomNativeProps(this.props),
1838
1795
  };
1839
1796
 
1840
- const { decelerationRate } = this.props;
1797
+ const {decelerationRate} = this.props;
1841
1798
  if (decelerationRate != null) {
1842
1799
  props.decelerationRate = processDecelerationRate(decelerationRate);
1843
1800
  }
1844
1801
 
1845
1802
  const refreshControl = this.props.refreshControl;
1846
1803
  const scrollViewRef = this._scrollView.getForwardingRef(
1847
- this.props.scrollViewRef
1804
+ this.props.scrollViewRef,
1848
1805
  );
1849
1806
 
1850
1807
  if (refreshControl) {
1851
- // RNOH: patch - use Android implementation
1852
- const { outer, inner } = splitLayoutProps(flattenStyle(props.style));
1853
- return React.cloneElement(
1808
+ return this._delegate.renderScrollViewWithRefreshControl({
1809
+ NativeScrollView,
1810
+ props,
1811
+ scrollViewRef,
1854
1812
  refreshControl,
1855
- { style: StyleSheet.compose(baseStyle, outer) },
1856
- <NativeDirectionalScrollView
1857
- {...props}
1858
- style={StyleSheet.compose(baseStyle, inner)}
1859
- ref={scrollViewRef}
1860
- >
1861
- {contentContainer}
1862
- </NativeDirectionalScrollView>
1863
- );
1813
+ contentContainer,
1814
+ baseStyle,
1815
+ });
1816
+ // if (Platform.OS === 'ios') {
1817
+ // // On iOS the RefreshControl is a child of the ScrollView.
1818
+ // return (
1819
+ // // $FlowFixMe[incompatible-type] - Flow only knows element refs.
1820
+ // <NativeScrollView {...props} ref={scrollViewRef}>
1821
+ // {refreshControl}
1822
+ // {contentContainer}
1823
+ // </NativeScrollView>
1824
+ // );
1825
+ // } else if (Platform.OS === 'android') {
1826
+ // // On Android wrap the ScrollView with a AndroidSwipeRefreshLayout.
1827
+ // // Since the ScrollView is wrapped add the style props to the
1828
+ // // AndroidSwipeRefreshLayout and use flex: 1 for the ScrollView.
1829
+ // // Note: we should split props.style on the inner and outer props
1830
+ // // however, the ScrollView still needs the baseStyle to be scrollable
1831
+ // // $FlowFixMe[underconstrained-implicit-instantiation]
1832
+ // // $FlowFixMe[incompatible-call]
1833
+ // const {outer, inner} = splitLayoutProps(flattenStyle(props.style));
1834
+ // return React.cloneElement(
1835
+ // refreshControl,
1836
+ // {style: StyleSheet.compose(baseStyle, outer)},
1837
+ // <NativeScrollView
1838
+ // {...props}
1839
+ // style={StyleSheet.compose(baseStyle, inner)}
1840
+ // // $FlowFixMe[incompatible-type] - Flow only knows element refs.
1841
+ // ref={scrollViewRef}>
1842
+ // {contentContainer}
1843
+ // </NativeScrollView>,
1844
+ // );
1845
+ // }
1864
1846
  }
1865
-
1866
1847
  return (
1867
- <NativeDirectionalScrollView {...props} ref={scrollViewRef}>
1848
+ // $FlowFixMe[incompatible-type] - Flow only knows element refs.
1849
+ <NativeScrollView {...props} ref={scrollViewRef}>
1868
1850
  {contentContainer}
1869
- </NativeDirectionalScrollView>
1851
+ </NativeScrollView>
1870
1852
  );
1871
1853
  }
1872
1854
  }
@@ -1875,25 +1857,23 @@ const styles = StyleSheet.create({
1875
1857
  baseVertical: {
1876
1858
  flexGrow: 1,
1877
1859
  flexShrink: 1,
1878
- flexDirection: "column",
1879
- overflow: "scroll",
1860
+ flexDirection: 'column',
1861
+ overflow: 'scroll',
1880
1862
  },
1881
1863
  baseHorizontal: {
1882
1864
  flexGrow: 1,
1883
1865
  flexShrink: 1,
1884
- flexDirection: "row",
1885
- overflow: "scroll",
1866
+ flexDirection: 'row',
1867
+ overflow: 'scroll',
1886
1868
  },
1887
1869
  contentContainerHorizontal: {
1888
- flexDirection: "row",
1870
+ flexDirection: 'row',
1889
1871
  },
1890
1872
  });
1891
1873
 
1892
- type ForwardedRef<T> = { current: null | T, ... } | ((null | T) => mixed);
1893
-
1894
1874
  type RefForwarder<TNativeInstance, TPublicInstance> = {
1895
1875
  getForwardingRef: (
1896
- ?ForwardedRef<TPublicInstance>
1876
+ ?React.RefSetter<TPublicInstance>,
1897
1877
  ) => (TNativeInstance | null) => void,
1898
1878
  nativeInstance: TNativeInstance | null,
1899
1879
  publicInstance: TPublicInstance | null,
@@ -1904,10 +1884,10 @@ type RefForwarder<TNativeInstance, TPublicInstance> = {
1904
1884
  * once `ScrollView` is reimplemented as a functional component.
1905
1885
  */
1906
1886
  function createRefForwarder<TNativeInstance, TPublicInstance>(
1907
- mutator: (TNativeInstance) => TPublicInstance
1887
+ mutator: TNativeInstance => TPublicInstance,
1908
1888
  ): RefForwarder<TNativeInstance, TPublicInstance> {
1909
1889
  const state: RefForwarder<TNativeInstance, TPublicInstance> = {
1910
- getForwardingRef: memoize((forwardedRef) => {
1890
+ getForwardingRef: memoize(forwardedRef => {
1911
1891
  return (nativeInstance: TNativeInstance | null): void => {
1912
1892
  const publicInstance =
1913
1893
  nativeInstance == null ? null : mutator(nativeInstance);
@@ -1916,7 +1896,7 @@ function createRefForwarder<TNativeInstance, TPublicInstance>(
1916
1896
  state.publicInstance = publicInstance;
1917
1897
 
1918
1898
  if (forwardedRef != null) {
1919
- if (typeof forwardedRef === "function") {
1899
+ if (typeof forwardedRef === 'function') {
1920
1900
  forwardedRef(publicInstance);
1921
1901
  } else {
1922
1902
  forwardedRef.current = publicInstance;
@@ -1931,21 +1911,26 @@ function createRefForwarder<TNativeInstance, TPublicInstance>(
1931
1911
  return state;
1932
1912
  }
1933
1913
 
1934
- /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
1935
- * LTI update could not be added via codemod */
1936
- function Wrapper(props, ref: ((mixed) => mixed) | { current: mixed, ... }) {
1937
- return <ScrollView {...props} scrollViewRef={ref} />;
1938
- }
1939
- Wrapper.displayName = "ScrollView";
1940
- const ForwardedScrollView = React.forwardRef(Wrapper);
1941
-
1942
- // $FlowFixMe[prop-missing] Add static context to ForwardedScrollView
1943
- ForwardedScrollView.Context = ScrollViewContext;
1944
-
1945
- ForwardedScrollView.displayName = "ScrollView";
1914
+ // TODO: After upgrading to React 19, remove `forwardRef` from this component.
1915
+ // NOTE: This wrapper component is necessary because `ScrollView` is a class
1916
+ // component and we need to map `ref` to a differently named prop. This can be
1917
+ // removed when `ScrollView` is a functional component.
1918
+ const Wrapper: component(
1919
+ ref: React.RefSetter<PublicScrollViewInstance>,
1920
+ ...props: Props
1921
+ ) = React.forwardRef(function Wrapper(
1922
+ props: Props,
1923
+ ref: ?React.RefSetter<PublicScrollViewInstance>,
1924
+ ): React.Node {
1925
+ return ref == null ? (
1926
+ <ScrollView {...props} />
1927
+ ) : (
1928
+ <ScrollView {...props} scrollViewRef={ref} />
1929
+ );
1930
+ });
1931
+ Wrapper.displayName = 'ScrollView';
1932
+ // $FlowExpectedError[prop-missing]
1933
+ Wrapper.Context = ScrollViewContext;
1946
1934
 
1947
- module.exports = ((ForwardedScrollView: $FlowFixMe): React.AbstractComponent<
1948
- React.ElementConfig<typeof ScrollView>,
1949
- PublicScrollViewInstance
1950
- > &
1935
+ module.exports = ((Wrapper: $FlowFixMe): typeof Wrapper &
1951
1936
  ScrollViewComponentStatics);