@office-iss/react-native-win32 0.70.4 → 0.71.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +2 -0
  3. package/.flowconfig +3 -6
  4. package/CHANGELOG.json +265 -63
  5. package/CHANGELOG.md +102 -30
  6. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  7. package/IntegrationTests/AppEventsTest.js +0 -1
  8. package/IntegrationTests/BUCK +0 -1
  9. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  10. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  11. package/IntegrationTests/IntegrationTestsApp.js +2 -3
  12. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  13. package/IntegrationTests/SyncMethodTest.js +1 -1
  14. package/IntegrationTests/TimersTest.js +4 -4
  15. package/IntegrationTests/WebSocketTest.js +3 -3
  16. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  17. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  18. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  19. package/Libraries/Alert/Alert.d.ts +90 -0
  20. package/Libraries/Alert/Alert.js +7 -1
  21. package/Libraries/Alert/Alert.win32.js +1 -0
  22. package/Libraries/Alert/NativeAlertManager.js +2 -0
  23. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  24. package/Libraries/Animated/Animated.d.ts +587 -0
  25. package/Libraries/Animated/Animated.js +13 -11
  26. package/Libraries/Animated/AnimatedEvent.js +12 -17
  27. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  28. package/Libraries/Animated/AnimatedMock.js +11 -13
  29. package/Libraries/Animated/AnimatedWeb.js +2 -2
  30. package/Libraries/Animated/Easing.d.ts +37 -0
  31. package/Libraries/Animated/Easing.js +2 -2
  32. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  33. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  34. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  35. package/Libraries/Animated/SpringConfig.js +2 -7
  36. package/Libraries/Animated/animations/Animation.js +3 -4
  37. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  38. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  39. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  40. package/Libraries/Animated/bezier.js +2 -2
  41. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  42. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  43. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  44. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  45. package/Libraries/Animated/components/AnimatedText.js +5 -6
  46. package/Libraries/Animated/components/AnimatedView.js +5 -6
  47. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  48. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  49. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  50. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  51. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  52. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  54. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  55. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  56. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  57. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  58. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  59. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  60. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  61. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  62. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  63. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  64. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  65. package/Libraries/Animated/useAnimatedProps.js +8 -16
  66. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  67. package/Libraries/Animated/useAnimatedValue.js +25 -0
  68. package/Libraries/AppState/AppState.d.ts +58 -0
  69. package/Libraries/AppState/AppState.js +3 -7
  70. package/Libraries/AppState/NativeAppState.js +1 -0
  71. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  72. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  73. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  74. package/Libraries/Blob/BlobManager.js +5 -3
  75. package/Libraries/Blob/File.js +2 -3
  76. package/Libraries/Blob/FileReader.js +6 -5
  77. package/Libraries/Blob/NativeBlobModule.js +1 -0
  78. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  79. package/Libraries/Blob/URL.js +11 -9
  80. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  81. package/Libraries/BugReporting/getReactData.js +1 -1
  82. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  83. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  84. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  85. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +40 -8
  86. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  87. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  88. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  89. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  90. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  91. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  92. package/Libraries/Components/Button.d.ts +42 -0
  93. package/Libraries/Components/Button.flow.js +265 -0
  94. package/Libraries/Components/Button.js +62 -18
  95. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  96. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  97. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  98. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  99. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  100. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  101. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  102. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +4 -2
  103. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  104. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  105. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  106. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  107. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  108. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  109. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  110. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  111. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  112. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  113. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  114. package/Libraries/Components/Pressable/Pressable.js +73 -15
  115. package/Libraries/Components/Pressable/Pressable.win32.js +77 -19
  116. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  117. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  118. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  119. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  120. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  121. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  122. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  123. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +1 -1
  124. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  125. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  126. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  127. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  128. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  129. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  130. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  132. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  133. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  134. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +5 -4
  135. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  136. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  137. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  138. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  139. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  140. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  141. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  142. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  143. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  144. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  145. package/Libraries/Components/Slider/Slider.js +9 -9
  146. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  147. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  148. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  149. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  150. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  151. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  152. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  153. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  154. package/Libraries/Components/Switch/Switch.js +7 -7
  155. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  156. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  157. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  158. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  159. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  160. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  161. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  162. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  163. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  164. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  165. package/Libraries/Components/TextInput/TextInput.js +344 -38
  166. package/Libraries/Components/TextInput/TextInput.win32.d.ts +1 -1
  167. package/Libraries/Components/TextInput/TextInput.win32.js +1 -1
  168. package/Libraries/Components/TextInput/TextInput.win32.js.map +1 -1
  169. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  170. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  171. package/Libraries/Components/TextInput/TextInputState.win32.js +24 -5
  172. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  173. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  174. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  175. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  176. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  177. package/Libraries/Components/Touchable/Touchable.js +12 -12
  178. package/Libraries/Components/Touchable/Touchable.win32.js +12 -12
  179. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  180. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  181. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  182. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  183. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  184. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  185. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  186. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +2 -1
  187. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  188. package/Libraries/Components/Touchable/TouchableWin32.js +0 -1
  189. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  190. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  191. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  192. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  193. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  194. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  195. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -1
  196. package/Libraries/Components/View/View.d.ts +29 -0
  197. package/Libraries/Components/View/View.js +91 -8
  198. package/Libraries/Components/View/View.win32.js +176 -89
  199. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  200. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  201. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  202. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  203. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  204. package/Libraries/Components/View/ViewPropTypes.win32.js +105 -13
  205. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  206. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  207. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  208. package/Libraries/Core/ExceptionsManager.js +8 -0
  209. package/Libraries/Core/ExtendedError.js +11 -8
  210. package/Libraries/Core/InitializeCore.js +2 -1
  211. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  212. package/Libraries/Core/RawEventEmitter.js +2 -1
  213. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  214. package/Libraries/Core/ReactNativeVersion.js +2 -2
  215. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  216. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -0
  217. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  218. package/Libraries/Core/Timers/JSTimers.js +13 -11
  219. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  220. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  221. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  222. package/Libraries/Core/setUpReactDevTools.js +4 -1
  223. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  224. package/Libraries/Core/setUpTimers.js +1 -1
  225. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  226. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  227. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  228. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  229. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  230. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  231. package/Libraries/Events/EventPolyfill.js +1 -1
  232. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  233. package/Libraries/Image/AssetSourceResolver.js +4 -6
  234. package/Libraries/Image/Image.android.js +63 -45
  235. package/Libraries/Image/Image.d.ts +322 -0
  236. package/Libraries/Image/Image.flow.js +64 -0
  237. package/Libraries/Image/Image.ios.js +55 -28
  238. package/Libraries/Image/Image.win32.js +54 -25
  239. package/Libraries/Image/ImageBackground.js +18 -7
  240. package/Libraries/Image/ImageInjection.js +2 -1
  241. package/Libraries/Image/ImageProps.js +88 -5
  242. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  243. package/Libraries/Image/ImageSource.d.ts +76 -0
  244. package/Libraries/Image/ImageSourceUtils.js +80 -0
  245. package/Libraries/Image/ImageUtils.js +21 -0
  246. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  247. package/Libraries/Image/NativeImageEditor.js +1 -0
  248. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  249. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  250. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  251. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  252. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  253. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  254. package/Libraries/Image/nativeImageSource.js +2 -2
  255. package/Libraries/Image/resolveAssetSource.js +5 -5
  256. package/Libraries/Inspector/BorderBox.js +1 -1
  257. package/Libraries/Inspector/BoxInspector.js +3 -4
  258. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  259. package/Libraries/Inspector/ElementBox.js +4 -5
  260. package/Libraries/Inspector/ElementProperties.js +10 -11
  261. package/Libraries/Inspector/Inspector.js +22 -108
  262. package/Libraries/Inspector/Inspector.win32.js +23 -109
  263. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  264. package/Libraries/Inspector/InspectorOverlay.win32.js +5 -5
  265. package/Libraries/Inspector/InspectorPanel.js +12 -10
  266. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  267. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  268. package/Libraries/Inspector/StyleInspector.js +2 -2
  269. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  270. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  271. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  272. package/Libraries/Interaction/InteractionManager.js +8 -8
  273. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  274. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  275. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  276. package/Libraries/Interaction/PanResponder.js +4 -3
  277. package/Libraries/JSInspector/JSInspector.js +0 -3
  278. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  279. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  280. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  281. package/Libraries/Linking/Linking.d.ts +61 -0
  282. package/Libraries/Linking/Linking.js +3 -2
  283. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  284. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  285. package/Libraries/Lists/CellRenderMask.js +13 -3
  286. package/Libraries/Lists/ChildListCollection.js +72 -0
  287. package/Libraries/Lists/FillRateHelper.js +28 -17
  288. package/Libraries/Lists/FlatList.d.ts +292 -0
  289. package/Libraries/Lists/FlatList.js +70 -70
  290. package/Libraries/Lists/SectionList.d.ts +300 -0
  291. package/Libraries/Lists/SectionList.js +5 -5
  292. package/Libraries/Lists/SectionListModern.js +6 -6
  293. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  294. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  295. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  296. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  297. package/Libraries/Lists/VirtualizedList.js +548 -890
  298. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  299. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  300. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  301. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  302. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  303. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  304. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  305. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  306. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  307. package/Libraries/LogBox/LogBox.d.ts +28 -0
  308. package/Libraries/LogBox/LogBox.js +11 -11
  309. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  310. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  311. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  312. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  313. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  314. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  315. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  316. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  317. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +6 -5
  318. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  319. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  320. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  321. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  322. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  323. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -5
  324. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  325. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  326. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  327. package/Libraries/Modal/Modal.d.ts +104 -0
  328. package/Libraries/Modal/Modal.js +14 -14
  329. package/Libraries/Modal/NativeModalManager.js +1 -0
  330. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  331. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  332. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  333. package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -3
  334. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  335. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  336. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  337. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  338. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  339. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  340. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  341. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  342. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  343. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  344. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  345. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  346. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  347. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  348. package/Libraries/Network/RCTNetworking.android.js +4 -3
  349. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  350. package/Libraries/Network/RCTNetworking.win32.js +1 -0
  351. package/Libraries/Network/convertRequestBody.js +1 -2
  352. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  353. package/Libraries/NewAppScreen/components/Header.js +6 -2
  354. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  355. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  356. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  357. package/Libraries/NewAppScreen/index.js +1 -1
  358. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  359. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  360. package/Libraries/Performance/Systrace.d.ts +66 -0
  361. package/Libraries/Performance/Systrace.js +110 -195
  362. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  363. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  364. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  365. package/Libraries/Pressability/Pressability.js +12 -10
  366. package/Libraries/Pressability/Pressability.win32.js +9 -7
  367. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  368. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  369. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  370. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  371. package/Libraries/ReactNative/AppContainer.js +17 -7
  372. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  373. package/Libraries/ReactNative/AppRegistry.js +11 -14
  374. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  375. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  376. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  377. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  378. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  379. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  380. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  381. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  382. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  383. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  384. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  385. package/Libraries/ReactNative/RendererProxy.js +26 -0
  386. package/Libraries/ReactNative/RootTag.js +0 -1
  387. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  388. package/Libraries/ReactNative/UIManager.js +1 -1
  389. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  390. package/Libraries/ReactNative/renderApplication.js +38 -20
  391. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  392. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  393. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  394. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  395. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  396. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  397. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  398. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  399. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  400. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  401. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  402. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  403. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  404. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  405. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  406. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  407. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  408. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  409. package/Libraries/Settings/Settings.d.ts +18 -0
  410. package/Libraries/Share/NativeShareModule.js +1 -0
  411. package/Libraries/Share/Share.d.ts +80 -0
  412. package/Libraries/Share/Share.js +7 -5
  413. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  414. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  415. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  416. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  417. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  418. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  419. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  420. package/Libraries/StyleSheet/StyleSheet.win32.js +16 -12
  421. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  422. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  423. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  424. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  425. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  426. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  427. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  428. package/Libraries/StyleSheet/processColor.js +3 -4
  429. package/Libraries/StyleSheet/processColorArray.js +1 -0
  430. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  431. package/Libraries/StyleSheet/processTransform.js +114 -105
  432. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  433. package/Libraries/Text/Text.d.ts +209 -0
  434. package/Libraries/Text/Text.js +94 -12
  435. package/Libraries/Text/TextNativeComponent.js +49 -41
  436. package/Libraries/Text/TextNativeComponent.win32.js +67 -49
  437. package/Libraries/Text/TextProps.js +64 -7
  438. package/Libraries/{Components/MaskedView/MaskedViewIOS.win32.js → TurboModule/RCTExport.d.ts} +3 -4
  439. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  440. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  441. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  442. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  443. package/Libraries/Types/CoreEventTypes.js +2 -1
  444. package/Libraries/Types/CoreEventTypes.win32.js +2 -1
  445. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  446. package/Libraries/Utilities/Appearance.d.ts +43 -0
  447. package/Libraries/Utilities/Appearance.js +3 -3
  448. package/Libraries/Utilities/BackHandler.android.js +3 -5
  449. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  450. package/Libraries/Utilities/BackHandler.win32.js +3 -5
  451. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  452. package/Libraries/Utilities/DevSettings.js +4 -2
  453. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  454. package/Libraries/Utilities/Dimensions.js +2 -2
  455. package/Libraries/Utilities/Dimensions.win32.js +2 -2
  456. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  457. package/Libraries/Utilities/HMRClient.js +23 -8
  458. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  459. package/Libraries/Utilities/NativeAppearance.js +1 -0
  460. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  461. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  462. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  463. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  464. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  465. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  466. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  467. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  468. package/Libraries/Utilities/Platform.android.js +11 -5
  469. package/Libraries/Utilities/Platform.d.ts +102 -0
  470. package/Libraries/Utilities/Platform.ios.js +12 -5
  471. package/Libraries/Utilities/Platform.win32.js +11 -5
  472. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  473. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  474. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  475. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  476. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  477. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  478. package/Libraries/Utilities/groupByEveryN.js +1 -1
  479. package/Libraries/Utilities/stringifySafe.js +3 -1
  480. package/Libraries/Utilities/useColorScheme.js +3 -2
  481. package/Libraries/Utilities/useRefEffect.js +1 -1
  482. package/Libraries/Vibration/NativeVibration.js +1 -0
  483. package/Libraries/Vibration/Vibration.d.ts +43 -0
  484. package/Libraries/Vibration/Vibration.js +1 -0
  485. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  486. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  487. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  488. package/Libraries/WebSocket/WebSocket.js +11 -3
  489. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  490. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  491. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  492. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  493. package/Libraries/__tests__/ButtonWin32-test.js +16 -0
  494. package/Libraries/platform-types.d.ts +25 -0
  495. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  496. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  497. package/babel.config.js +3 -0
  498. package/flow/jest.js +2 -2
  499. package/flow-typed/npm/{react-dom_v16.x.x.js → react-dom_v17.x.x.js} +58 -31
  500. package/flow-typed/npm/yargs_v17.x.x.js +341 -0
  501. package/index.js +89 -55
  502. package/index.win32.js +89 -55
  503. package/interface.js +8 -0
  504. package/jest/react-native-env.js +18 -0
  505. package/jest/renderer.js +2 -2
  506. package/jest/setup.js +7 -9
  507. package/jest.config.js +9 -2
  508. package/overrides.json +40 -101
  509. package/package.json +34 -33
  510. package/src/Libraries/Components/TextInput/TextInput.win32.tsx +2 -1
  511. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
  512. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +2 -1
  513. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  514. package/src/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  515. package/src/Libraries/platform-types.d.ts +25 -0
  516. package/types/index.d.ts +215 -0
  517. package/IntegrationTests/AsyncStorageTest.js +0 -261
  518. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  519. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  520. package/Libraries/Core/setUpSystrace.js +0 -21
  521. package/Libraries/Image/ImagePickerIOS.js +0 -103
  522. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  523. package/Libraries/Lists/VirtualizedList.win32.js +0 -9
  524. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  525. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  526. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  527. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  528. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  529. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  530. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  531. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  532. package/Libraries/Storage/AsyncStorage.js +0 -385
  533. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  534. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  535. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  536. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  537. package/rntypes/BatchedBridge.d.ts +0 -23
  538. package/rntypes/Devtools.d.ts +0 -20
  539. package/rntypes/LaunchScreen.d.ts +0 -9
  540. package/rntypes/globals.d.ts +0 -497
  541. package/rntypes/index.d.ts +0 -9754
  542. package/rntypes/legacy-properties.d.ts +0 -238
  543. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
  544. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
  545. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4565
  546. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
  547. package/src/rntypes/BatchedBridge.d.ts +0 -23
  548. package/src/rntypes/Devtools.d.ts +0 -20
  549. package/src/rntypes/LaunchScreen.d.ts +0 -9
  550. package/src/rntypes/globals.d.ts +0 -497
  551. package/src/rntypes/index.d.ts +0 -9754
  552. package/src/rntypes/legacy-properties.d.ts +0 -238
  553. package/src/typings-index.ts +0 -37
  554. package/typings-index.d.ts +0 -23
  555. package/typings-index.js +0 -47
  556. package/typings-index.js.map +0 -1
@@ -1,269 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @format
8
- * @flow
9
- * @emails oncall+react_native
10
- */
11
-
12
- 'use strict';
13
-
14
- const React = require('react');
15
- const ReactTestRenderer = require('react-test-renderer');
16
-
17
- const VirtualizedSectionList = require('../VirtualizedSectionList');
18
-
19
- describe('VirtualizedSectionList', () => {
20
- it('renders simple list', () => {
21
- const component = ReactTestRenderer.create(
22
- <VirtualizedSectionList
23
- sections={[
24
- {title: 's1', data: [{key: 'i1'}, {key: 'i2'}, {key: 'i3'}]},
25
- ]}
26
- renderItem={({item}) => <item value={item.key} />}
27
- getItem={(data, key) => data[key]}
28
- getItemCount={data => data.length}
29
- />,
30
- );
31
- expect(component).toMatchSnapshot();
32
- });
33
-
34
- it('renders empty list', () => {
35
- const component = ReactTestRenderer.create(
36
- <VirtualizedSectionList
37
- sections={[]}
38
- renderItem={({item}) => <item value={item.key} />}
39
- getItem={(data, key) => data[key]}
40
- getItemCount={data => data.length}
41
- />,
42
- );
43
- expect(component).toMatchSnapshot();
44
- });
45
-
46
- it('renders empty list with empty component', () => {
47
- const component = ReactTestRenderer.create(
48
- <VirtualizedSectionList
49
- sections={[]}
50
- ListEmptyComponent={() => <empty />}
51
- ListFooterComponent={() => <footer />}
52
- ListHeaderComponent={() => <header />}
53
- getItem={(data, key) => data[key]}
54
- getItemCount={data => data.length}
55
- renderItem={({item}) => <item value={item.key} />}
56
- />,
57
- );
58
- expect(component).toMatchSnapshot();
59
- });
60
-
61
- it('renders list with empty component', () => {
62
- const component = ReactTestRenderer.create(
63
- <VirtualizedSectionList
64
- sections={[{title: 's1', data: [{key: 'hello'}]}]}
65
- ListEmptyComponent={() => <empty />}
66
- getItem={(data, key) => data[key]}
67
- getItemCount={data => data.length}
68
- renderItem={({item}) => <item value={item.key} />}
69
- />,
70
- );
71
- expect(component).toMatchSnapshot();
72
- });
73
-
74
- it('renders all the bells and whistles', () => {
75
- const component = ReactTestRenderer.create(
76
- <VirtualizedSectionList
77
- ItemSeparatorComponent={() => <separator />}
78
- ListEmptyComponent={() => <empty />}
79
- ListFooterComponent={() => <footer />}
80
- ListHeaderComponent={() => <header />}
81
- sections={[
82
- {
83
- title: 's1',
84
- data: new Array(5).fill().map((_, ii) => ({id: String(ii)})),
85
- },
86
- ]}
87
- getItem={(data, key) => data[key]}
88
- getItemCount={data => data.length}
89
- getItemLayout={({index}) => ({
90
- index: -1,
91
- length: 50,
92
- offset: index * 50,
93
- })}
94
- inverted={true}
95
- keyExtractor={(item, index) => item.id}
96
- onRefresh={jest.fn()}
97
- refreshing={false}
98
- renderItem={({item}) => <item value={item.id} />}
99
- />,
100
- );
101
- expect(component).toMatchSnapshot();
102
- });
103
-
104
- it('handles separators correctly', () => {
105
- const infos = [];
106
- let component;
107
- ReactTestRenderer.act(() => {
108
- component = ReactTestRenderer.create(
109
- <VirtualizedSectionList
110
- ItemSeparatorComponent={props => <separator {...props} />}
111
- sections={[
112
- {title: 's0', data: [{key: 'i0'}, {key: 'i1'}, {key: 'i2'}]},
113
- ]}
114
- renderItem={info => {
115
- infos.push(info);
116
- return <item title={info.item.key} />;
117
- }}
118
- getItem={(data, key) => data[key]}
119
- getItemCount={data => data.length}
120
- />,
121
- );
122
- });
123
- expect(component).toMatchSnapshot();
124
-
125
- ReactTestRenderer.act(() => {
126
- infos[1].separators.highlight();
127
- });
128
- expect(component).toMatchSnapshot();
129
- ReactTestRenderer.act(() => {
130
- infos[2].separators.updateProps('leading', {press: true});
131
- });
132
- expect(component).toMatchSnapshot();
133
- ReactTestRenderer.act(() => {
134
- infos[1].separators.unhighlight();
135
- });
136
- expect(component).toMatchSnapshot();
137
- });
138
-
139
- it('handles nested lists', () => {
140
- const component = ReactTestRenderer.create(
141
- <VirtualizedSectionList
142
- sections={[{title: 'outer', data: [{key: 'outer0'}, {key: 'outer1'}]}]}
143
- renderItem={outerInfo => (
144
- <VirtualizedSectionList
145
- sections={[
146
- {
147
- title: 'inner',
148
- data: [
149
- {key: outerInfo.item.key + ':inner0'},
150
- {key: outerInfo.item.key + ':inner1'},
151
- ],
152
- },
153
- ]}
154
- horizontal={outerInfo.item.key === 'outer1'}
155
- renderItem={innerInfo => {
156
- return <item title={innerInfo.item.key} />;
157
- }}
158
- getItem={(data, key) => data[key]}
159
- getItemCount={data => data.length}
160
- />
161
- )}
162
- getItem={(data, key) => data[key]}
163
- getItemCount={data => data.length}
164
- />,
165
- );
166
- expect(component).toMatchSnapshot();
167
- });
168
-
169
- describe('scrollToLocation', () => {
170
- const ITEM_HEIGHT = 100;
171
-
172
- const createVirtualizedSectionList = (
173
- props: void | $TEMPORARY$object<{stickySectionHeadersEnabled: boolean}>,
174
- ) => {
175
- const component = ReactTestRenderer.create(
176
- <VirtualizedSectionList
177
- sections={[
178
- {title: 's1', data: [{key: 'i1.1'}, {key: 'i1.2'}, {key: 'i1.3'}]},
179
- {title: 's2', data: [{key: 'i2.1'}, {key: 'i2.2'}, {key: 'i2.3'}]},
180
- ]}
181
- renderItem={({item}) => <item value={item.key} />}
182
- getItem={(data, key) => data[key]}
183
- getItemCount={data => data.length}
184
- getItemLayout={(data, index) => ({
185
- length: ITEM_HEIGHT,
186
- offset: ITEM_HEIGHT * index,
187
- index,
188
- })}
189
- {...props}
190
- />,
191
- );
192
- const instance = component.getInstance();
193
- const spy = jest.fn();
194
-
195
- // $FlowFixMe[incompatible-use] wrong types
196
- // $FlowFixMe[prop-missing] wrong types
197
- instance._listRef.scrollToIndex = spy;
198
-
199
- return {
200
- instance,
201
- spy,
202
- };
203
- };
204
-
205
- it('when sticky stickySectionHeadersEnabled={true}, header height is added to the developer-provided viewOffset', () => {
206
- const {instance, spy} = createVirtualizedSectionList({
207
- stickySectionHeadersEnabled: true,
208
- });
209
-
210
- const viewOffset = 25;
211
-
212
- // $FlowFixMe[prop-missing] scrollToLocation isn't on instance
213
- instance?.scrollToLocation({
214
- sectionIndex: 0,
215
- itemIndex: 1,
216
- viewOffset,
217
- });
218
- expect(spy).toHaveBeenCalledWith({
219
- index: 1,
220
- itemIndex: 1,
221
- sectionIndex: 0,
222
- viewOffset: viewOffset + ITEM_HEIGHT,
223
- });
224
- });
225
-
226
- it.each([
227
- [
228
- // prevents #18098
229
- {sectionIndex: 0, itemIndex: 0},
230
- {
231
- index: 0,
232
- itemIndex: 0,
233
- sectionIndex: 0,
234
- viewOffset: 0,
235
- },
236
- ],
237
- [
238
- {sectionIndex: 2, itemIndex: 1},
239
- {
240
- index: 11,
241
- itemIndex: 1,
242
- sectionIndex: 2,
243
- viewOffset: 0,
244
- },
245
- ],
246
- [
247
- {
248
- sectionIndex: 0,
249
- itemIndex: 1,
250
- viewOffset: 25,
251
- },
252
- {
253
- index: 1,
254
- itemIndex: 1,
255
- sectionIndex: 0,
256
- viewOffset: 25,
257
- },
258
- ],
259
- ])(
260
- 'given sectionIndex, itemIndex and viewOffset, scrollToIndex is called with correct params',
261
- (scrollToLocationParams, expected) => {
262
- const {instance, spy} = createVirtualizedSectionList();
263
- // $FlowFixMe[prop-missing] scrollToLocation not on instance
264
- instance?.scrollToLocation(scrollToLocationParams);
265
- expect(spy).toHaveBeenCalledWith(expected);
266
- },
267
- );
268
- });
269
- });
@@ -1,385 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @format
8
- * @flow strict
9
- * @jsdoc
10
- */
11
-
12
- import NativeAsyncLocalStorage from './NativeAsyncLocalStorage';
13
- import NativeAsyncSQLiteDBStorage from './NativeAsyncSQLiteDBStorage';
14
- import invariant from 'invariant';
15
-
16
- // Use SQLite if available, otherwise file storage.
17
- const RCTAsyncStorage = NativeAsyncSQLiteDBStorage || NativeAsyncLocalStorage;
18
-
19
- type GetRequest = {
20
- keys: Array<string>,
21
- callback: ?(errors: ?Array<Error>, result: ?Array<Array<string>>) => void,
22
- keyIndex: number,
23
- resolve: (
24
- result?:
25
- | void
26
- | null
27
- | Promise<?Array<Array<string>>>
28
- | Array<Array<string>>,
29
- ) => void,
30
- reject: (error?: mixed) => void,
31
- };
32
-
33
- /**
34
- * `AsyncStorage` is a simple, unencrypted, asynchronous, persistent, key-value
35
- * storage system that is global to the app. It should be used instead of
36
- * LocalStorage.
37
- *
38
- * See https://reactnative.dev/docs/asyncstorage
39
- */
40
- const AsyncStorage = {
41
- _getRequests: ([]: Array<GetRequest>),
42
- _getKeys: ([]: Array<string>),
43
- _immediate: (null: ?number),
44
-
45
- /**
46
- * Fetches an item for a `key` and invokes a callback upon completion.
47
- *
48
- * See https://reactnative.dev/docs/asyncstorage#getitem
49
- */
50
- getItem: function (
51
- key: string,
52
- callback?: ?(error: ?Error, result: ?string) => void,
53
- ): Promise<?string> {
54
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
55
- return new Promise((resolve, reject) => {
56
- RCTAsyncStorage.multiGet([key], function (errors, result) {
57
- // Unpack result to get value from [[key,value]]
58
- const value = result && result[0] && result[0][1] ? result[0][1] : null;
59
- const errs = convertErrors(errors);
60
- callback && callback(errs && errs[0], value);
61
- if (errs) {
62
- reject(errs[0]);
63
- } else {
64
- resolve(value);
65
- }
66
- });
67
- });
68
- },
69
-
70
- /**
71
- * Sets the value for a `key` and invokes a callback upon completion.
72
- *
73
- * See https://reactnative.dev/docs/asyncstorage#setitem
74
- */
75
- setItem: function (
76
- key: string,
77
- value: string,
78
- callback?: ?(error: ?Error) => void,
79
- ): Promise<void> {
80
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
81
- return new Promise((resolve, reject) => {
82
- RCTAsyncStorage.multiSet([[key, value]], function (errors) {
83
- const errs = convertErrors(errors);
84
- callback && callback(errs && errs[0]);
85
- if (errs) {
86
- reject(errs[0]);
87
- } else {
88
- resolve();
89
- }
90
- });
91
- });
92
- },
93
-
94
- /**
95
- * Removes an item for a `key` and invokes a callback upon completion.
96
- *
97
- * See https://reactnative.dev/docs/asyncstorage#removeitem
98
- */
99
- removeItem: function (
100
- key: string,
101
- callback?: ?(error: ?Error) => void,
102
- ): Promise<void> {
103
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
104
- return new Promise((resolve, reject) => {
105
- RCTAsyncStorage.multiRemove([key], function (errors) {
106
- const errs = convertErrors(errors);
107
- callback && callback(errs && errs[0]);
108
- if (errs) {
109
- reject(errs[0]);
110
- } else {
111
- resolve();
112
- }
113
- });
114
- });
115
- },
116
-
117
- /**
118
- * Merges an existing `key` value with an input value, assuming both values
119
- * are stringified JSON.
120
- *
121
- * **NOTE:** This is not supported by all native implementations.
122
- *
123
- * See https://reactnative.dev/docs/asyncstorage#mergeitem
124
- */
125
- mergeItem: function (
126
- key: string,
127
- value: string,
128
- callback?: ?(error: ?Error) => void,
129
- ): Promise<void> {
130
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
131
- return new Promise((resolve, reject) => {
132
- RCTAsyncStorage.multiMerge([[key, value]], function (errors) {
133
- const errs = convertErrors(errors);
134
- callback && callback(errs && errs[0]);
135
- if (errs) {
136
- reject(errs[0]);
137
- } else {
138
- resolve();
139
- }
140
- });
141
- });
142
- },
143
-
144
- /**
145
- * Erases *all* `AsyncStorage` for all clients, libraries, etc. You probably
146
- * don't want to call this; use `removeItem` or `multiRemove` to clear only
147
- * your app's keys.
148
- *
149
- * See https://reactnative.dev/docs/asyncstorage#clear
150
- */
151
- clear: function (callback?: ?(error: ?Error) => void): Promise<void> {
152
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
153
- return new Promise((resolve, reject) => {
154
- RCTAsyncStorage.clear(function (error) {
155
- callback && callback(convertError(error));
156
- if (error && convertError(error)) {
157
- reject(convertError(error));
158
- } else {
159
- resolve();
160
- }
161
- });
162
- });
163
- },
164
-
165
- /**
166
- * Gets *all* keys known to your app; for all callers, libraries, etc.
167
- *
168
- * See https://reactnative.dev/docs/asyncstorage#getallkeys
169
- */
170
- getAllKeys: function (
171
- callback?: ?(error: ?Error, keys: ?Array<string>) => void,
172
- ): Promise<?Array<string>> {
173
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
174
- return new Promise((resolve, reject) => {
175
- RCTAsyncStorage.getAllKeys(function (error, keys) {
176
- callback && callback(convertError(error), keys);
177
- if (error) {
178
- reject(convertError(error));
179
- } else {
180
- resolve(keys);
181
- }
182
- });
183
- });
184
- },
185
-
186
- /**
187
- * The following batched functions are useful for executing a lot of
188
- * operations at once, allowing for native optimizations and provide the
189
- * convenience of a single callback after all operations are complete.
190
- *
191
- * These functions return arrays of errors, potentially one for every key.
192
- * For key-specific errors, the Error object will have a key property to
193
- * indicate which key caused the error.
194
- */
195
-
196
- /**
197
- * Flushes any pending requests using a single batch call to get the data.
198
- *
199
- * See https://reactnative.dev/docs/asyncstorage#flushgetrequests
200
- * */
201
- /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
202
- * Flow's LTI update could not be added via codemod */
203
- flushGetRequests: function (): void {
204
- const getRequests = this._getRequests;
205
- const getKeys = this._getKeys;
206
-
207
- this._getRequests = [];
208
- this._getKeys = [];
209
-
210
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
211
- RCTAsyncStorage.multiGet(getKeys, function (errors, result) {
212
- // Even though the runtime complexity of this is theoretically worse vs if we used a map,
213
- // it's much, much faster in practice for the data sets we deal with (we avoid
214
- // allocating result pair arrays). This was heavily benchmarked.
215
- //
216
- // Is there a way to avoid using the map but fix the bug in this breaking test?
217
- // https://github.com/facebook/react-native/commit/8dd8ad76579d7feef34c014d387bf02065692264
218
- const map: {[string]: string} = {};
219
- result &&
220
- result.forEach(([key, value]) => {
221
- map[key] = value;
222
- return value;
223
- });
224
- const reqLength = getRequests.length;
225
- for (let i = 0; i < reqLength; i++) {
226
- const request = getRequests[i];
227
- const requestKeys = request.keys;
228
- const requestResult = requestKeys.map(key => [key, map[key]]);
229
- request.callback && request.callback(null, requestResult);
230
- request.resolve && request.resolve(requestResult);
231
- }
232
- });
233
- },
234
-
235
- /**
236
- * This allows you to batch the fetching of items given an array of `key`
237
- * inputs. Your callback will be invoked with an array of corresponding
238
- * key-value pairs found.
239
- *
240
- * See https://reactnative.dev/docs/asyncstorage#multiget
241
- */
242
- /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
243
- * Flow's LTI update could not be added via codemod */
244
- multiGet: function (
245
- keys: Array<string>,
246
- callback?: ?(errors: ?Array<Error>, result: ?Array<Array<string>>) => void,
247
- ): Promise<?Array<Array<string>>> {
248
- if (!this._immediate) {
249
- this._immediate = setImmediate(() => {
250
- this._immediate = null;
251
- this.flushGetRequests();
252
- });
253
- }
254
-
255
- return new Promise<?Array<Array<string>>>((resolve, reject) => {
256
- this._getRequests.push({
257
- keys,
258
- callback,
259
- // do we need this?
260
- keyIndex: this._getKeys.length,
261
- resolve,
262
- reject,
263
- });
264
- // avoid fetching duplicates
265
- keys.forEach(key => {
266
- if (this._getKeys.indexOf(key) === -1) {
267
- this._getKeys.push(key);
268
- }
269
- });
270
- });
271
- },
272
-
273
- /**
274
- * Use this as a batch operation for storing multiple key-value pairs. When
275
- * the operation completes you'll get a single callback with any errors.
276
- *
277
- * See https://reactnative.dev/docs/asyncstorage#multiset
278
- */
279
- multiSet: function (
280
- keyValuePairs: Array<Array<string>>,
281
- callback?: ?(errors: ?Array<Error>) => void,
282
- ): Promise<void> {
283
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
284
- return new Promise((resolve, reject) => {
285
- RCTAsyncStorage.multiSet(keyValuePairs, function (errors) {
286
- const error = convertErrors(errors);
287
- callback && callback(error);
288
- if (error) {
289
- reject(error);
290
- } else {
291
- resolve();
292
- }
293
- });
294
- });
295
- },
296
-
297
- /**
298
- * Call this to batch the deletion of all keys in the `keys` array.
299
- *
300
- * See https://reactnative.dev/docs/asyncstorage#multiremove
301
- */
302
- multiRemove: function (
303
- keys: Array<string>,
304
- callback?: ?(errors: ?Array<Error>) => void,
305
- ): Promise<void> {
306
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
307
- return new Promise((resolve, reject) => {
308
- RCTAsyncStorage.multiRemove(keys, function (errors) {
309
- const error = convertErrors(errors);
310
- callback && callback(error);
311
- if (error) {
312
- reject(error);
313
- } else {
314
- resolve();
315
- }
316
- });
317
- });
318
- },
319
-
320
- /**
321
- * Batch operation to merge in existing and new values for a given set of
322
- * keys. This assumes that the values are stringified JSON.
323
- *
324
- * **NOTE**: This is not supported by all native implementations.
325
- *
326
- * See https://reactnative.dev/docs/asyncstorage#multimerge
327
- */
328
- multiMerge: function (
329
- keyValuePairs: Array<Array<string>>,
330
- callback?: ?(errors: ?Array<Error>) => void,
331
- ): Promise<void> {
332
- invariant(RCTAsyncStorage, 'RCTAsyncStorage not available');
333
- return new Promise((resolve, reject) => {
334
- RCTAsyncStorage.multiMerge(keyValuePairs, function (errors) {
335
- const error = convertErrors(errors);
336
- callback && callback(error);
337
- if (error) {
338
- reject(error);
339
- } else {
340
- resolve();
341
- }
342
- });
343
- });
344
- },
345
- };
346
-
347
- // Not all native implementations support merge.
348
- // TODO: Check whether above comment is correct. multiMerge is guaranteed to
349
- // exist in the module spec so we should be able to just remove this check.
350
- if (RCTAsyncStorage && !RCTAsyncStorage.multiMerge) {
351
- // $FlowFixMe[unclear-type]
352
- delete (AsyncStorage: any).mergeItem;
353
- // $FlowFixMe[unclear-type]
354
- delete (AsyncStorage: any).multiMerge;
355
- }
356
-
357
- function convertErrors(
358
- // NOTE: The native module spec only has the Array case, but the Android
359
- // implementation passes a single object.
360
- errs: ?(
361
- | {message: string, key?: string}
362
- | Array<{message: string, key?: string}>
363
- ),
364
- ) {
365
- if (!errs) {
366
- return null;
367
- }
368
- return (Array.isArray(errs) ? errs : [errs]).map(e => convertError(e));
369
- }
370
-
371
- declare function convertError(void | null): null;
372
- declare function convertError({message: string, key?: string}): Error;
373
- /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
374
- * LTI update could not be added via codemod */
375
- function convertError(error) {
376
- if (!error) {
377
- return null;
378
- }
379
- const out = new Error(error.message);
380
- // $FlowFixMe[unclear-type]
381
- (out: any).key = error.key;
382
- return out;
383
- }
384
-
385
- module.exports = AsyncStorage;
@@ -1,44 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @flow strict
8
- * @format
9
- */
10
-
11
- import type {TurboModule} from '../TurboModule/RCTExport';
12
- import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
13
-
14
- export interface Spec extends TurboModule {
15
- +getConstants: () => {};
16
- +multiGet: (
17
- keys: Array<string>,
18
- callback: (
19
- errors: ?Array<{message: string, key?: string}>,
20
- kvPairs: ?Array<Array<string>>,
21
- ) => void,
22
- ) => void;
23
- +multiSet: (
24
- kvPairs: Array<Array<string>>,
25
- callback: (errors: ?Array<{message: string, key?: string}>) => void,
26
- ) => void;
27
- +multiMerge: (
28
- kvPairs: Array<Array<string>>,
29
- callback: (errors: ?Array<{message: string, key?: string}>) => void,
30
- ) => void;
31
- +multiRemove: (
32
- keys: Array<string>,
33
- callback: (errors: ?Array<{message: string, key?: string}>) => void,
34
- ) => void;
35
- +clear: (callback: (error: {message: string, key?: string}) => void) => void;
36
- +getAllKeys: (
37
- callback: (
38
- error: ?{message: string, key?: string},
39
- allKeys: ?Array<string>,
40
- ) => void,
41
- ) => void;
42
- }
43
-
44
- export default (TurboModuleRegistry.get<Spec>('AsyncLocalStorage'): ?Spec);