@office-iss/react-native-win32 0.70.2 → 0.71.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +2 -0
  3. package/.flowconfig +3 -6
  4. package/CHANGELOG.json +281 -43
  5. package/CHANGELOG.md +105 -24
  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 -0
  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/Components/View/ViewWin32.Props.d.ts +6 -1
  206. package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
  207. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  208. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  209. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  210. package/Libraries/Core/ExceptionsManager.js +8 -0
  211. package/Libraries/Core/ExtendedError.js +11 -8
  212. package/Libraries/Core/InitializeCore.js +2 -1
  213. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  214. package/Libraries/Core/RawEventEmitter.js +2 -1
  215. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  216. package/Libraries/Core/ReactNativeVersion.js +2 -2
  217. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  218. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -0
  219. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  220. package/Libraries/Core/Timers/JSTimers.js +13 -11
  221. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  222. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  223. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  224. package/Libraries/Core/setUpReactDevTools.js +4 -1
  225. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  226. package/Libraries/Core/setUpTimers.js +1 -1
  227. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  228. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  229. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  230. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  231. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  232. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  233. package/Libraries/Events/EventPolyfill.js +1 -1
  234. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  235. package/Libraries/Image/AssetSourceResolver.js +4 -6
  236. package/Libraries/Image/Image.android.js +63 -45
  237. package/Libraries/Image/Image.d.ts +322 -0
  238. package/Libraries/Image/Image.flow.js +64 -0
  239. package/Libraries/Image/Image.ios.js +55 -28
  240. package/Libraries/Image/Image.win32.js +54 -25
  241. package/Libraries/Image/ImageBackground.js +18 -7
  242. package/Libraries/Image/ImageInjection.js +2 -1
  243. package/Libraries/Image/ImageProps.js +88 -5
  244. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  245. package/Libraries/Image/ImageSource.d.ts +76 -0
  246. package/Libraries/Image/ImageSourceUtils.js +80 -0
  247. package/Libraries/Image/ImageUtils.js +21 -0
  248. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  249. package/Libraries/Image/NativeImageEditor.js +1 -0
  250. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  251. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  252. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  253. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  254. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  255. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  256. package/Libraries/Image/nativeImageSource.js +2 -2
  257. package/Libraries/Image/resolveAssetSource.js +5 -5
  258. package/Libraries/Inspector/BorderBox.js +1 -1
  259. package/Libraries/Inspector/BoxInspector.js +3 -4
  260. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  261. package/Libraries/Inspector/ElementBox.js +4 -5
  262. package/Libraries/Inspector/ElementProperties.js +10 -11
  263. package/Libraries/Inspector/Inspector.js +22 -108
  264. package/Libraries/Inspector/Inspector.win32.js +23 -109
  265. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  266. package/Libraries/Inspector/InspectorOverlay.win32.js +5 -5
  267. package/Libraries/Inspector/InspectorPanel.js +12 -10
  268. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  269. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  270. package/Libraries/Inspector/StyleInspector.js +2 -2
  271. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  272. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  273. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  274. package/Libraries/Interaction/InteractionManager.js +8 -8
  275. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  276. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  277. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  278. package/Libraries/Interaction/PanResponder.js +4 -3
  279. package/Libraries/JSInspector/JSInspector.js +0 -3
  280. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  281. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  282. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  283. package/Libraries/Linking/Linking.d.ts +61 -0
  284. package/Libraries/Linking/Linking.js +3 -2
  285. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  286. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  287. package/Libraries/Lists/CellRenderMask.js +13 -3
  288. package/Libraries/Lists/ChildListCollection.js +72 -0
  289. package/Libraries/Lists/FillRateHelper.js +28 -17
  290. package/Libraries/Lists/FlatList.d.ts +292 -0
  291. package/Libraries/Lists/FlatList.js +70 -70
  292. package/Libraries/Lists/SectionList.d.ts +300 -0
  293. package/Libraries/Lists/SectionList.js +5 -5
  294. package/Libraries/Lists/SectionListModern.js +6 -6
  295. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  296. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  297. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  298. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  299. package/Libraries/Lists/VirtualizedList.js +548 -890
  300. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  301. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  302. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  303. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  304. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  305. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  306. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  307. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  308. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  309. package/Libraries/LogBox/LogBox.d.ts +28 -0
  310. package/Libraries/LogBox/LogBox.js +11 -11
  311. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  312. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  313. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  314. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  315. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  316. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  317. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  318. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  319. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +6 -5
  320. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  321. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  322. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  323. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  324. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  325. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -5
  326. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  327. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  328. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  329. package/Libraries/Modal/Modal.d.ts +104 -0
  330. package/Libraries/Modal/Modal.js +14 -14
  331. package/Libraries/Modal/NativeModalManager.js +1 -0
  332. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  333. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  334. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  335. package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -3
  336. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  337. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  338. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  339. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  340. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  341. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  342. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  343. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  344. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  345. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  346. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  347. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  348. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  349. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  350. package/Libraries/Network/RCTNetworking.android.js +4 -3
  351. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  352. package/Libraries/Network/RCTNetworking.win32.js +1 -0
  353. package/Libraries/Network/convertRequestBody.js +1 -2
  354. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  355. package/Libraries/NewAppScreen/components/Header.js +6 -2
  356. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  357. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  358. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  359. package/Libraries/NewAppScreen/index.js +1 -1
  360. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  361. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  362. package/Libraries/Performance/Systrace.d.ts +66 -0
  363. package/Libraries/Performance/Systrace.js +110 -195
  364. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  365. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  366. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  367. package/Libraries/Pressability/Pressability.js +12 -10
  368. package/Libraries/Pressability/Pressability.win32.js +9 -7
  369. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  370. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  371. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  372. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  373. package/Libraries/ReactNative/AppContainer.js +17 -7
  374. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  375. package/Libraries/ReactNative/AppRegistry.js +11 -14
  376. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  377. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  378. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  379. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  380. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  381. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  382. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  383. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  384. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  385. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  386. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  387. package/Libraries/ReactNative/RendererProxy.js +26 -0
  388. package/Libraries/ReactNative/RootTag.js +0 -1
  389. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  390. package/Libraries/ReactNative/UIManager.js +1 -1
  391. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  392. package/Libraries/ReactNative/renderApplication.js +38 -20
  393. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  394. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  395. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  396. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  397. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  398. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  399. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  400. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  401. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  402. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  403. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  404. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  405. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  406. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  407. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  408. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  409. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  410. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  411. package/Libraries/Settings/Settings.d.ts +18 -0
  412. package/Libraries/Share/NativeShareModule.js +1 -0
  413. package/Libraries/Share/Share.d.ts +80 -0
  414. package/Libraries/Share/Share.js +7 -5
  415. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  416. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  417. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  418. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  419. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  420. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  421. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  422. package/Libraries/StyleSheet/StyleSheet.win32.js +16 -12
  423. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  424. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  425. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  426. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  427. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  428. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  429. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  430. package/Libraries/StyleSheet/processColor.js +3 -4
  431. package/Libraries/StyleSheet/processColorArray.js +1 -0
  432. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  433. package/Libraries/StyleSheet/processTransform.js +114 -105
  434. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  435. package/Libraries/Text/Text.d.ts +209 -0
  436. package/Libraries/Text/Text.js +94 -12
  437. package/Libraries/Text/TextNativeComponent.js +49 -41
  438. package/Libraries/Text/TextNativeComponent.win32.js +67 -48
  439. package/Libraries/Text/TextProps.js +64 -7
  440. package/Libraries/{Components/MaskedView/MaskedViewIOS.win32.js → TurboModule/RCTExport.d.ts} +3 -4
  441. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  442. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  443. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  444. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  445. package/Libraries/Types/CoreEventTypes.js +2 -1
  446. package/Libraries/Types/CoreEventTypes.win32.js +2 -1
  447. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  448. package/Libraries/Utilities/Appearance.d.ts +43 -0
  449. package/Libraries/Utilities/Appearance.js +3 -3
  450. package/Libraries/Utilities/BackHandler.android.js +3 -5
  451. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  452. package/Libraries/Utilities/BackHandler.win32.js +3 -5
  453. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  454. package/Libraries/Utilities/DevSettings.js +4 -2
  455. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  456. package/Libraries/Utilities/Dimensions.js +2 -2
  457. package/Libraries/Utilities/Dimensions.win32.js +2 -2
  458. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  459. package/Libraries/Utilities/HMRClient.js +23 -8
  460. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  461. package/Libraries/Utilities/NativeAppearance.js +1 -0
  462. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  463. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  464. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  465. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  466. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  467. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  468. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  469. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  470. package/Libraries/Utilities/Platform.android.js +11 -5
  471. package/Libraries/Utilities/Platform.d.ts +102 -0
  472. package/Libraries/Utilities/Platform.ios.js +12 -5
  473. package/Libraries/Utilities/Platform.win32.js +11 -5
  474. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  475. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  476. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  477. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  478. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  479. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  480. package/Libraries/Utilities/groupByEveryN.js +1 -1
  481. package/Libraries/Utilities/stringifySafe.js +3 -1
  482. package/Libraries/Utilities/useColorScheme.js +3 -2
  483. package/Libraries/Utilities/useRefEffect.js +1 -1
  484. package/Libraries/Vibration/NativeVibration.js +1 -0
  485. package/Libraries/Vibration/Vibration.d.ts +43 -0
  486. package/Libraries/Vibration/Vibration.js +1 -0
  487. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  488. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  489. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  490. package/Libraries/WebSocket/WebSocket.js +11 -3
  491. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  492. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  493. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  494. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  495. package/Libraries/__tests__/ButtonWin32-test.js +16 -0
  496. package/Libraries/platform-types.d.ts +25 -0
  497. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  498. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  499. package/babel.config.js +3 -0
  500. package/flow/jest.js +2 -2
  501. package/flow-typed/npm/{react-dom_v16.x.x.js → react-dom_v17.x.x.js} +58 -31
  502. package/flow-typed/npm/yargs_v17.x.x.js +341 -0
  503. package/index.js +89 -55
  504. package/index.win32.js +89 -55
  505. package/interface.js +8 -0
  506. package/jest/react-native-env.js +18 -0
  507. package/jest/renderer.js +2 -2
  508. package/jest/setup.js +7 -9
  509. package/jest.config.js +9 -2
  510. package/overrides.json +40 -101
  511. package/package.json +34 -33
  512. package/src/Libraries/Components/TextInput/TextInput.win32.tsx +2 -1
  513. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
  514. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +2 -1
  515. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  516. package/src/Libraries/Components/View/ViewWin32.Props.ts +10 -1
  517. package/src/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  518. package/src/Libraries/platform-types.d.ts +25 -0
  519. package/types/index.d.ts +215 -0
  520. package/IntegrationTests/AsyncStorageTest.js +0 -261
  521. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  522. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  523. package/Libraries/Core/setUpSystrace.js +0 -21
  524. package/Libraries/Image/ImagePickerIOS.js +0 -103
  525. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  526. package/Libraries/Lists/VirtualizedList.win32.js +0 -9
  527. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  528. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  529. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  530. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  531. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  532. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  533. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  534. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  535. package/Libraries/Storage/AsyncStorage.js +0 -385
  536. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  537. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  538. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  539. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  540. package/rntypes/BatchedBridge.d.ts +0 -23
  541. package/rntypes/Devtools.d.ts +0 -20
  542. package/rntypes/LaunchScreen.d.ts +0 -9
  543. package/rntypes/globals.d.ts +0 -497
  544. package/rntypes/index.d.ts +0 -9754
  545. package/rntypes/legacy-properties.d.ts +0 -238
  546. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
  547. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
  548. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4565
  549. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
  550. package/src/rntypes/BatchedBridge.d.ts +0 -23
  551. package/src/rntypes/Devtools.d.ts +0 -20
  552. package/src/rntypes/LaunchScreen.d.ts +0 -9
  553. package/src/rntypes/globals.d.ts +0 -497
  554. package/src/rntypes/index.d.ts +0 -9754
  555. package/src/rntypes/legacy-properties.d.ts +0 -238
  556. package/src/typings-index.ts +0 -37
  557. package/typings-index.d.ts +0 -23
  558. package/typings-index.js +0 -47
  559. package/typings-index.js.map +0 -1
@@ -8,14 +8,13 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import * as React from 'react';
12
-
13
- const Image = require('../../Image/Image');
14
- const createAnimatedComponent = require('../createAnimatedComponent');
15
-
16
11
  import type {AnimatedComponentType} from '../createAnimatedComponent';
17
12
 
18
- module.exports = (createAnimatedComponent(
13
+ import Image from '../../Image/Image';
14
+ import createAnimatedComponent from '../createAnimatedComponent';
15
+ import * as React from 'react';
16
+
17
+ export default (createAnimatedComponent(
19
18
  (Image: $FlowFixMe),
20
19
  ): AnimatedComponentType<
21
20
  React.ElementConfig<typeof Image>,
@@ -8,23 +8,119 @@
8
8
  * @format
9
9
  */
10
10
 
11
+ import type {____ViewStyle_Internal} from '../../StyleSheet/StyleSheetTypes';
12
+ import type {AnimatedComponentType} from '../createAnimatedComponent';
13
+
14
+ import RefreshControl from '../../Components/RefreshControl/RefreshControl';
15
+ import ScrollView from '../../Components/ScrollView/ScrollView';
16
+ import flattenStyle from '../../StyleSheet/flattenStyle';
17
+ import splitLayoutProps from '../../StyleSheet/splitLayoutProps';
18
+ import StyleSheet from '../../StyleSheet/StyleSheet';
19
+ import Platform from '../../Utilities/Platform';
20
+ import useMergeRefs from '../../Utilities/useMergeRefs';
21
+ import createAnimatedComponent from '../createAnimatedComponent';
22
+ import useAnimatedProps from '../useAnimatedProps';
11
23
  import * as React from 'react';
24
+ import {useMemo} from 'react';
12
25
 
13
- const ScrollView = require('../../Components/ScrollView/ScrollView');
14
- const createAnimatedComponent = require('../createAnimatedComponent');
15
-
16
- import type {AnimatedComponentType} from '../createAnimatedComponent';
26
+ type Props = React.ElementConfig<typeof ScrollView>;
27
+ type Instance = React.ElementRef<typeof ScrollView>;
17
28
 
18
29
  /**
19
30
  * @see https://github.com/facebook/react-native/commit/b8c8562
20
31
  */
21
- const ScrollViewWithEventThrottle = React.forwardRef((props, ref) => (
22
- <ScrollView scrollEventThrottle={0.0001} {...props} ref={ref} />
23
- ));
24
-
25
- module.exports = (createAnimatedComponent(
26
- ScrollViewWithEventThrottle,
27
- ): AnimatedComponentType<
28
- React.ElementConfig<typeof ScrollView>,
29
- React.ElementRef<typeof ScrollView>,
30
- >);
32
+ const AnimatedScrollView: AnimatedComponentType<Props, Instance> =
33
+ React.forwardRef((props, forwardedRef) => {
34
+ // (Android only) When a ScrollView has a RefreshControl and
35
+ // any `style` property set with an Animated.Value, the CSS
36
+ // gets incorrectly applied twice. This is because ScrollView
37
+ // swaps the parent/child relationship of itself and the
38
+ // RefreshControl component (see ScrollView.js for more details).
39
+ if (
40
+ Platform.OS === 'android' &&
41
+ props.refreshControl != null &&
42
+ props.style != null
43
+ ) {
44
+ return (
45
+ <AnimatedScrollViewWithInvertedRefreshControl
46
+ scrollEventThrottle={0.0001}
47
+ {...props}
48
+ ref={forwardedRef}
49
+ refreshControl={props.refreshControl}
50
+ />
51
+ );
52
+ } else {
53
+ return (
54
+ <AnimatedScrollViewWithoutInvertedRefreshControl
55
+ scrollEventThrottle={0.0001}
56
+ {...props}
57
+ ref={forwardedRef}
58
+ />
59
+ );
60
+ }
61
+ });
62
+
63
+ const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
64
+ (
65
+ props: {
66
+ ...React.ElementConfig<typeof ScrollView>,
67
+ // $FlowFixMe[unclear-type] Same Flow type as `refreshControl` in ScrollView
68
+ refreshControl: React.Element<any>,
69
+ },
70
+ forwardedRef,
71
+ ) => {
72
+ // Split `props` into the animate-able props for the parent (RefreshControl)
73
+ // and child (ScrollView).
74
+ const {intermediatePropsForRefreshControl, intermediatePropsForScrollView} =
75
+ useMemo(() => {
76
+ const {outer, inner} = splitLayoutProps(flattenStyle(props.style));
77
+ return {
78
+ intermediatePropsForRefreshControl: {style: outer},
79
+ intermediatePropsForScrollView: {...props, style: inner},
80
+ };
81
+ }, [props]);
82
+
83
+ // Handle animated props on `refreshControl`.
84
+ const [refreshControlAnimatedProps, refreshControlRef] = useAnimatedProps<
85
+ {style: ?____ViewStyle_Internal},
86
+ $FlowFixMe,
87
+ >(intermediatePropsForRefreshControl);
88
+ // NOTE: Assumes that refreshControl.ref` and `refreshControl.style` can be
89
+ // safely clobbered.
90
+ const refreshControl: React.Element<typeof RefreshControl> =
91
+ React.cloneElement(props.refreshControl, {
92
+ ...refreshControlAnimatedProps,
93
+ ref: refreshControlRef,
94
+ });
95
+
96
+ // Handle animated props on `NativeDirectionalScrollView`.
97
+ const [scrollViewAnimatedProps, scrollViewRef] = useAnimatedProps<
98
+ Props,
99
+ Instance,
100
+ >(intermediatePropsForScrollView);
101
+ const ref = useMergeRefs<Instance | null>(scrollViewRef, forwardedRef);
102
+
103
+ return (
104
+ // $FlowFixMe[incompatible-use] Investigate useAnimatedProps return value
105
+ <ScrollView
106
+ {...scrollViewAnimatedProps}
107
+ ref={ref}
108
+ refreshControl={refreshControl}
109
+ // Because `refreshControl` is a clone of `props.refreshControl` with
110
+ // `refreshControlAnimatedProps` added, we need to pass ScrollView.js
111
+ // the combined styles since it also splits the outer/inner styles for
112
+ // its parent/child, respectively. Without this, the refreshControl
113
+ // styles would be ignored.
114
+ style={StyleSheet.compose(
115
+ scrollViewAnimatedProps.style,
116
+ refreshControlAnimatedProps.style,
117
+ )}
118
+ />
119
+ );
120
+ },
121
+ );
122
+
123
+ const AnimatedScrollViewWithoutInvertedRefreshControl =
124
+ createAnimatedComponent(ScrollView);
125
+
126
+ export default AnimatedScrollView;
@@ -8,12 +8,11 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import * as React from 'react';
11
+ import type {AnimatedComponentType} from '../createAnimatedComponent';
12
12
 
13
13
  import SectionList from '../../Lists/SectionList';
14
- const createAnimatedComponent = require('../createAnimatedComponent');
15
-
16
- import type {AnimatedComponentType} from '../createAnimatedComponent';
14
+ import createAnimatedComponent from '../createAnimatedComponent';
15
+ import * as React from 'react';
17
16
 
18
17
  /**
19
18
  * @see https://github.com/facebook/react-native/commit/b8c8562
@@ -22,7 +21,7 @@ const SectionListWithEventThrottle = React.forwardRef((props, ref) => (
22
21
  <SectionList scrollEventThrottle={0.0001} {...props} ref={ref} />
23
22
  ));
24
23
 
25
- module.exports = (createAnimatedComponent(
24
+ export default (createAnimatedComponent(
26
25
  SectionListWithEventThrottle,
27
26
  ): AnimatedComponentType<
28
27
  React.ElementConfig<typeof SectionList>,
@@ -8,14 +8,13 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import * as React from 'react';
12
-
13
- const Text = require('../../Text/Text');
14
- const createAnimatedComponent = require('../createAnimatedComponent');
15
-
16
11
  import type {AnimatedComponentType} from '../createAnimatedComponent';
17
12
 
18
- module.exports = (createAnimatedComponent(
13
+ import Text from '../../Text/Text';
14
+ import createAnimatedComponent from '../createAnimatedComponent';
15
+ import * as React from 'react';
16
+
17
+ export default (createAnimatedComponent(
19
18
  (Text: $FlowFixMe),
20
19
  ): AnimatedComponentType<
21
20
  React.ElementConfig<typeof Text>,
@@ -8,14 +8,13 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import * as React from 'react';
12
-
13
- const View = require('../../Components/View/View');
14
- const createAnimatedComponent = require('../createAnimatedComponent');
15
-
16
11
  import type {AnimatedComponentType} from '../createAnimatedComponent';
17
12
 
18
- module.exports = (createAnimatedComponent(View): AnimatedComponentType<
13
+ import View from '../../Components/View/View';
14
+ import createAnimatedComponent from '../createAnimatedComponent';
15
+ import * as React from 'react';
16
+
17
+ export default (createAnimatedComponent(View): AnimatedComponentType<
19
18
  React.ElementConfig<typeof View>,
20
19
  React.ElementRef<typeof View>,
21
20
  >);
@@ -10,16 +10,14 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import View from '../Components/View/View';
14
+ import setAndForwardRef from '../Utilities/setAndForwardRef';
15
+ import {AnimatedEvent} from './AnimatedEvent';
13
16
  import * as createAnimatedComponentInjection from './createAnimatedComponentInjection';
14
-
15
- const View = require('../Components/View/View');
16
- const {AnimatedEvent} = require('./AnimatedEvent');
17
- const AnimatedProps = require('./nodes/AnimatedProps');
18
- const React = require('react');
19
- const NativeAnimatedHelper = require('./NativeAnimatedHelper');
20
-
21
- const invariant = require('invariant');
22
- const setAndForwardRef = require('../Utilities/setAndForwardRef');
17
+ import NativeAnimatedHelper from './NativeAnimatedHelper';
18
+ import AnimatedProps from './nodes/AnimatedProps';
19
+ import invariant from 'invariant';
20
+ import * as React from 'react';
23
21
 
24
22
  let animatedComponentNextId = 1;
25
23
 
@@ -55,7 +53,6 @@ function createAnimatedComponent<Props: {+[string]: mixed, ...}, Instance>(
55
53
  _prevComponent: any;
56
54
  _propsAnimated: AnimatedProps;
57
55
  _eventDetachers: Array<Function> = [];
58
- _initialAnimatedProps: Object;
59
56
 
60
57
  // Only to be used in this file, and only in Fabric.
61
58
  _animatedComponentId: string = `${animatedComponentNextId++}:animatedComponent`;
@@ -140,7 +137,7 @@ function createAnimatedComponent<Props: {+[string]: mixed, ...}, Instance>(
140
137
  // components. If you want to animate a composite component, you need to
141
138
  // re-render it. In this case, we have a fallback that uses forceUpdate.
142
139
  // This fallback is also called in Fabric.
143
- _animatedPropsCallback = () => {
140
+ _animatedPropsCallback = (): void => {
144
141
  if (this._component == null) {
145
142
  // AnimatedProps is created in will-mount because it's used in render.
146
143
  // But this callback may be invoked before mount in async mode,
@@ -192,7 +189,7 @@ function createAnimatedComponent<Props: {+[string]: mixed, ...}, Instance>(
192
189
  }
193
190
  }
194
191
 
195
- _setComponentRef = setAndForwardRef({
192
+ _setComponentRef: (ref: React.ElementRef<any>) => void = setAndForwardRef({
196
193
  getForwardedRef: () => this.props.forwardedRef,
197
194
  setLocalRef: ref => {
198
195
  this._prevComponent = this._component;
@@ -200,18 +197,14 @@ function createAnimatedComponent<Props: {+[string]: mixed, ...}, Instance>(
200
197
  },
201
198
  });
202
199
 
203
- render() {
204
- const animatedProps =
205
- this._propsAnimated.__getValue(this._initialAnimatedProps) || {};
200
+ render(): React.Node {
201
+ const animatedProps = this._propsAnimated.__getValue() || {};
202
+
206
203
  const {style = {}, ...props} = animatedProps;
207
204
  const {style: passthruStyle = {}, ...passthruProps} =
208
205
  this.props.passthroughAnimatedPropExplicitValues || {};
209
206
  const mergedStyle = {...style, ...passthruStyle};
210
207
 
211
- if (!this._initialAnimatedProps) {
212
- this._initialAnimatedProps = animatedProps;
213
- }
214
-
215
208
  // Force `collapsable` to be false so that native view is not flattened.
216
209
  // Flattened views cannot be accurately referenced by a native driver.
217
210
  return (
@@ -277,5 +270,5 @@ function createAnimatedComponent<Props: {+[string]: mixed, ...}, Instance>(
277
270
  }
278
271
 
279
272
  // $FlowIgnore[incompatible-cast] - Will be compatible after refactors.
280
- module.exports = (createAnimatedComponentInjection.recordAndRetrieve() ??
273
+ export default (createAnimatedComponentInjection.recordAndRetrieve() ??
281
274
  createAnimatedComponent: typeof createAnimatedComponent);
@@ -8,9 +8,9 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import useAnimatedProps from './useAnimatedProps';
12
- import useMergeRefs from '../Utilities/useMergeRefs';
13
11
  import StyleSheet from '../StyleSheet/StyleSheet';
12
+ import useMergeRefs from '../Utilities/useMergeRefs';
13
+ import useAnimatedProps from './useAnimatedProps';
14
14
  import * as React from 'react';
15
15
 
16
16
  /**
@@ -10,15 +10,15 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const AnimatedInterpolation = require('./AnimatedInterpolation');
14
- const AnimatedNode = require('./AnimatedNode');
15
- const AnimatedValue = require('./AnimatedValue');
16
- const AnimatedWithChildren = require('./AnimatedWithChildren');
17
-
18
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
19
14
  import type {InterpolationConfigType} from './AnimatedInterpolation';
15
+ import type AnimatedNode from './AnimatedNode';
16
+
17
+ import AnimatedInterpolation from './AnimatedInterpolation';
18
+ import AnimatedValue from './AnimatedValue';
19
+ import AnimatedWithChildren from './AnimatedWithChildren';
20
20
 
21
- class AnimatedAddition extends AnimatedWithChildren {
21
+ export default class AnimatedAddition extends AnimatedWithChildren {
22
22
  _a: AnimatedNode;
23
23
  _b: AnimatedNode;
24
24
 
@@ -62,5 +62,3 @@ class AnimatedAddition extends AnimatedWithChildren {
62
62
  };
63
63
  }
64
64
  }
65
-
66
- module.exports = AnimatedAddition;
@@ -10,16 +10,16 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import AnimatedValue from './AnimatedValue';
14
- import AnimatedWithChildren from './AnimatedWithChildren';
13
+ import type {NativeColorValue} from '../../StyleSheet/PlatformColorValueTypes';
14
+ import type {ProcessedColorValue} from '../../StyleSheet/processColor';
15
+ import type {ColorValue} from '../../StyleSheet/StyleSheet';
16
+ import type {PlatformConfig} from '../AnimatedPlatformConfig';
17
+
15
18
  import normalizeColor from '../../StyleSheet/normalizeColor';
16
19
  import {processColorObject} from '../../StyleSheet/PlatformColorValueTypes';
17
20
  import NativeAnimatedHelper from '../NativeAnimatedHelper';
18
-
19
- import type {PlatformConfig} from '../AnimatedPlatformConfig';
20
- import type {ColorValue} from '../../StyleSheet/StyleSheet';
21
- import type {NativeColorValue} from '../../StyleSheet/PlatformColorValueTypes';
22
- import type {ProcessedColorValue} from '../../StyleSheet/processColor';
21
+ import AnimatedValue from './AnimatedValue';
22
+ import AnimatedWithChildren from './AnimatedWithChildren';
23
23
 
24
24
  export type AnimatedColorConfig = $ReadOnly<{
25
25
  useNativeDriver: boolean,
@@ -10,14 +10,14 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const AnimatedInterpolation = require('./AnimatedInterpolation');
14
- const AnimatedNode = require('./AnimatedNode');
15
- const AnimatedWithChildren = require('./AnimatedWithChildren');
16
-
17
- import type {InterpolationConfigType} from './AnimatedInterpolation';
18
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
+ import type {InterpolationConfigType} from './AnimatedInterpolation';
15
+ import type AnimatedNode from './AnimatedNode';
19
16
 
20
- class AnimatedDiffClamp extends AnimatedWithChildren {
17
+ import AnimatedInterpolation from './AnimatedInterpolation';
18
+ import AnimatedWithChildren from './AnimatedWithChildren';
19
+
20
+ export default class AnimatedDiffClamp extends AnimatedWithChildren {
21
21
  _a: AnimatedNode;
22
22
  _min: number;
23
23
  _max: number;
@@ -70,5 +70,3 @@ class AnimatedDiffClamp extends AnimatedWithChildren {
70
70
  };
71
71
  }
72
72
  }
73
-
74
- module.exports = AnimatedDiffClamp;
@@ -10,15 +10,15 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const AnimatedInterpolation = require('./AnimatedInterpolation');
14
- const AnimatedNode = require('./AnimatedNode');
15
- const AnimatedValue = require('./AnimatedValue');
16
- const AnimatedWithChildren = require('./AnimatedWithChildren');
17
-
18
- import type {InterpolationConfigType} from './AnimatedInterpolation';
19
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
+ import type {InterpolationConfigType} from './AnimatedInterpolation';
20
15
 
21
- class AnimatedDivision extends AnimatedWithChildren {
16
+ import AnimatedInterpolation from './AnimatedInterpolation';
17
+ import AnimatedNode from './AnimatedNode';
18
+ import AnimatedValue from './AnimatedValue';
19
+ import AnimatedWithChildren from './AnimatedWithChildren';
20
+
21
+ export default class AnimatedDivision extends AnimatedWithChildren {
22
22
  _a: AnimatedNode;
23
23
  _b: AnimatedNode;
24
24
  _warnedAboutDivideByZero: boolean = false;
@@ -78,5 +78,3 @@ class AnimatedDivision extends AnimatedWithChildren {
78
78
  };
79
79
  }
80
80
  }
81
-
82
- module.exports = AnimatedDivision;
@@ -12,14 +12,13 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const AnimatedNode = require('./AnimatedNode');
16
- const AnimatedWithChildren = require('./AnimatedWithChildren');
17
- const NativeAnimatedHelper = require('../NativeAnimatedHelper');
18
-
19
- const invariant = require('invariant');
20
- const normalizeColor = require('../../StyleSheet/normalizeColor');
21
-
22
15
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
16
+ import type AnimatedNode from './AnimatedNode';
17
+
18
+ import normalizeColor from '../../StyleSheet/normalizeColor';
19
+ import NativeAnimatedHelper from '../NativeAnimatedHelper';
20
+ import AnimatedWithChildren from './AnimatedWithChildren';
21
+ import invariant from 'invariant';
23
22
 
24
23
  type ExtrapolateType = 'extend' | 'identity' | 'clamp';
25
24
 
@@ -299,7 +298,7 @@ function checkInfiniteRange(name: string, arr: $ReadOnlyArray<number>) {
299
298
  );
300
299
  }
301
300
 
302
- class AnimatedInterpolation<
301
+ export default class AnimatedInterpolation<
303
302
  OutputT: number | string,
304
303
  > extends AnimatedWithChildren {
305
304
  // Export for testing.
@@ -368,5 +367,3 @@ class AnimatedInterpolation<
368
367
  };
369
368
  }
370
369
  }
371
-
372
- module.exports = AnimatedInterpolation;
@@ -10,14 +10,14 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const AnimatedInterpolation = require('./AnimatedInterpolation');
14
- const AnimatedNode = require('./AnimatedNode');
15
- const AnimatedWithChildren = require('./AnimatedWithChildren');
16
-
17
- import type {InterpolationConfigType} from './AnimatedInterpolation';
18
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
+ import type {InterpolationConfigType} from './AnimatedInterpolation';
15
+ import type AnimatedNode from './AnimatedNode';
19
16
 
20
- class AnimatedModulo extends AnimatedWithChildren {
17
+ import AnimatedInterpolation from './AnimatedInterpolation';
18
+ import AnimatedWithChildren from './AnimatedWithChildren';
19
+
20
+ export default class AnimatedModulo extends AnimatedWithChildren {
21
21
  _a: AnimatedNode;
22
22
  _modulus: number;
23
23
 
@@ -61,5 +61,3 @@ class AnimatedModulo extends AnimatedWithChildren {
61
61
  };
62
62
  }
63
63
  }
64
-
65
- module.exports = AnimatedModulo;
@@ -10,15 +10,15 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const AnimatedInterpolation = require('./AnimatedInterpolation');
14
- const AnimatedNode = require('./AnimatedNode');
15
- const AnimatedValue = require('./AnimatedValue');
16
- const AnimatedWithChildren = require('./AnimatedWithChildren');
17
-
18
- import type {InterpolationConfigType} from './AnimatedInterpolation';
19
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
+ import type {InterpolationConfigType} from './AnimatedInterpolation';
15
+ import type AnimatedNode from './AnimatedNode';
20
16
 
21
- class AnimatedMultiplication extends AnimatedWithChildren {
17
+ import AnimatedInterpolation from './AnimatedInterpolation';
18
+ import AnimatedValue from './AnimatedValue';
19
+ import AnimatedWithChildren from './AnimatedWithChildren';
20
+
21
+ export default class AnimatedMultiplication extends AnimatedWithChildren {
22
22
  _a: AnimatedNode;
23
23
  _b: AnimatedNode;
24
24
 
@@ -61,5 +61,3 @@ class AnimatedMultiplication extends AnimatedWithChildren {
61
61
  };
62
62
  }
63
63
  }
64
-
65
- module.exports = AnimatedMultiplication;
@@ -10,12 +10,13 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const NativeAnimatedHelper = require('../NativeAnimatedHelper');
13
+ import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
14
 
15
- const NativeAnimatedAPI = NativeAnimatedHelper.API;
16
- const invariant = require('invariant');
15
+ import ReactNativeFeatureFlags from '../../ReactNative/ReactNativeFeatureFlags';
16
+ import NativeAnimatedHelper from '../NativeAnimatedHelper';
17
+ import invariant from 'invariant';
17
18
 
18
- import type {PlatformConfig} from '../AnimatedPlatformConfig';
19
+ const NativeAnimatedAPI = NativeAnimatedHelper.API;
19
20
 
20
21
  type ValueListenerCallback = (state: {value: number, ...}) => mixed;
21
22
 
@@ -23,12 +24,15 @@ let _uniqueId = 1;
23
24
 
24
25
  // Note(vjeux): this would be better as an interface but flow doesn't
25
26
  // support them yet
26
- class AnimatedNode {
27
+ export default class AnimatedNode {
27
28
  _listeners: {[key: string]: ValueListenerCallback, ...};
28
29
  _platformConfig: ?PlatformConfig;
29
30
  __nativeAnimatedValueListener: ?any;
30
31
  __attach(): void {}
31
32
  __detach(): void {
33
+ if (ReactNativeFeatureFlags.removeListenersOnDetach()) {
34
+ this.removeAllListeners();
35
+ }
32
36
  if (this.__isNative && this.__nativeTag != null) {
33
37
  NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);
34
38
  this.__nativeTag = undefined;
@@ -53,7 +57,7 @@ class AnimatedNode {
53
57
  this._listeners = {};
54
58
  }
55
59
 
56
- __makeNative(platformConfig: ?PlatformConfig) {
60
+ __makeNative(platformConfig: ?PlatformConfig): void {
57
61
  if (!this.__isNative) {
58
62
  throw new Error('This node cannot be made a "native" animated node');
59
63
  }
@@ -193,5 +197,3 @@ class AnimatedNode {
193
197
  this._platformConfig = platformConfig;
194
198
  }
195
199
  }
196
-
197
- module.exports = AnimatedNode;
@@ -12,14 +12,14 @@
12
12
 
13
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
14
 
15
- const ReactNative = require('../../Renderer/shims/ReactNative');
16
- const {AnimatedEvent} = require('../AnimatedEvent');
17
- const NativeAnimatedHelper = require('../NativeAnimatedHelper');
18
- const AnimatedNode = require('./AnimatedNode');
19
- const AnimatedStyle = require('./AnimatedStyle');
20
- const invariant = require('invariant');
21
-
22
- class AnimatedProps extends AnimatedNode {
15
+ import {findNodeHandle} from '../../ReactNative/RendererProxy';
16
+ import {AnimatedEvent} from '../AnimatedEvent';
17
+ import NativeAnimatedHelper from '../NativeAnimatedHelper';
18
+ import AnimatedNode from './AnimatedNode';
19
+ import AnimatedStyle from './AnimatedStyle';
20
+ import invariant from 'invariant';
21
+
22
+ export default class AnimatedProps extends AnimatedNode {
23
23
  _props: Object;
24
24
  _animatedView: any;
25
25
  _callback: () => void;
@@ -36,24 +36,12 @@ class AnimatedProps extends AnimatedNode {
36
36
  this._callback = callback;
37
37
  }
38
38
 
39
- __getValue(initialProps: ?Object): Object {
39
+ __getValue(): Object {
40
40
  const props: {[string]: any | ((...args: any) => void)} = {};
41
41
  for (const key in this._props) {
42
42
  const value = this._props[key];
43
43
  if (value instanceof AnimatedNode) {
44
- // During initial render we want to use the initial value of both natively and non-natively
45
- // driven nodes. On subsequent renders, we cannot use the value of natively driven nodes
46
- // as they may not be up to date, so we use the initial value to ensure that values of
47
- // native animated nodes do not impact rerenders.
48
- if (value instanceof AnimatedStyle) {
49
- props[key] = value.__getValue(
50
- initialProps ? initialProps.style : null,
51
- );
52
- } else if (!initialProps || !value.__isNative) {
53
- props[key] = value.__getValue();
54
- } else if (initialProps.hasOwnProperty(key)) {
55
- props[key] = initialProps[key];
56
- }
44
+ props[key] = value.__getValue();
57
45
  } else if (value instanceof AnimatedEvent) {
58
46
  props[key] = value.__getHandler();
59
47
  } else {
@@ -134,9 +122,7 @@ class AnimatedProps extends AnimatedNode {
134
122
 
135
123
  __connectAnimatedView(): void {
136
124
  invariant(this.__isNative, 'Expected node to be marked as "native"');
137
- const nativeViewTag: ?number = ReactNative.findNodeHandle(
138
- this._animatedView,
139
- );
125
+ const nativeViewTag: ?number = findNodeHandle(this._animatedView);
140
126
  invariant(
141
127
  nativeViewTag != null,
142
128
  'Unable to locate attached view in the native tree',
@@ -149,9 +135,7 @@ class AnimatedProps extends AnimatedNode {
149
135
 
150
136
  __disconnectAnimatedView(): void {
151
137
  invariant(this.__isNative, 'Expected node to be marked as "native"');
152
- const nativeViewTag: ?number = ReactNative.findNodeHandle(
153
- this._animatedView,
154
- );
138
+ const nativeViewTag: ?number = findNodeHandle(this._animatedView);
155
139
  invariant(
156
140
  nativeViewTag != null,
157
141
  'Unable to locate attached view in the native tree',
@@ -187,5 +171,3 @@ class AnimatedProps extends AnimatedNode {
187
171
  };
188
172
  }
189
173
  }
190
-
191
- module.exports = AnimatedProps;