@office-iss/react-native-win32 0.80.0-preview.1 → 0.81.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 (513) hide show
  1. package/.flowconfig +10 -4
  2. package/CHANGELOG.json +135 -6
  3. package/CHANGELOG.md +53 -4
  4. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  5. package/IntegrationTests/AppEventsTest.js +1 -1
  6. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  7. package/IntegrationTests/ImageCachePolicyTest.js +2 -2
  8. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  9. package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
  10. package/IntegrationTests/IntegrationTestsApp.js +2 -1
  11. package/IntegrationTests/LayoutEventsTest.js +1 -1
  12. package/IntegrationTests/LoggingTestModule.js +16 -20
  13. package/IntegrationTests/PromiseTest.js +1 -1
  14. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  15. package/IntegrationTests/SyncMethodTest.js +1 -1
  16. package/IntegrationTests/TimersTest.js +2 -1
  17. package/IntegrationTests/WebSocketTest.js +2 -1
  18. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  19. package/Libraries/Alert/Alert.js +3 -3
  20. package/Libraries/Alert/Alert.win32.js +1 -1
  21. package/Libraries/Alert/NativeAlertManager.js +1 -0
  22. package/Libraries/Alert/RCTAlertManager.android.js +19 -13
  23. package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
  24. package/Libraries/Alert/RCTAlertManager.js +1 -3
  25. package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
  26. package/Libraries/Animated/Animated.js +0 -1
  27. package/Libraries/Animated/Animated.js.flow +0 -1
  28. package/Libraries/Animated/AnimatedEvent.js +4 -3
  29. package/Libraries/Animated/AnimatedExports.js +0 -1
  30. package/Libraries/Animated/AnimatedExports.js.flow +5 -1
  31. package/Libraries/Animated/AnimatedImplementation.js +44 -44
  32. package/Libraries/Animated/AnimatedMock.js +2 -2
  33. package/Libraries/Animated/Easing.js +1 -1
  34. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  35. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  36. package/Libraries/Animated/SpringConfig.js +1 -1
  37. package/Libraries/Animated/animations/Animation.js +10 -2
  38. package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
  39. package/Libraries/Animated/components/AnimatedText.js +2 -5
  40. package/Libraries/Animated/components/AnimatedView.js +2 -1
  41. package/Libraries/Animated/createAnimatedComponent.js +39 -37
  42. package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
  43. package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
  44. package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
  45. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
  46. package/Libraries/AppState/NativeAppState.js +1 -0
  47. package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
  48. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  49. package/Libraries/Blob/BlobManager.js +4 -0
  50. package/Libraries/Blob/NativeBlobModule.js +1 -0
  51. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  52. package/Libraries/Blob/URL.js +1 -1
  53. package/Libraries/Blob/URLSearchParams.js +5 -1
  54. package/Libraries/Blob/URLSearchParams.js.flow +2 -1
  55. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
  56. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +1 -2
  57. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
  58. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  59. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  60. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
  61. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
  62. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
  63. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  64. package/Libraries/Components/Button.js +10 -7
  65. package/Libraries/Components/Button.win32.js +10 -7
  66. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  67. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
  68. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
  69. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
  70. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
  71. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
  72. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
  73. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
  74. package/Libraries/Components/Keyboard/Keyboard.js +1 -1
  75. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
  76. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
  77. package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
  78. package/Libraries/Components/Pressable/Pressable.js +17 -8
  79. package/Libraries/Components/Pressable/Pressable.win32.js +17 -14
  80. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
  81. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  82. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
  83. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
  84. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
  85. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  86. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
  87. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
  88. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
  89. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +3 -2
  90. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
  91. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  92. package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
  93. package/Libraries/Components/ScrollView/ScrollView.js +25 -15
  94. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  95. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
  96. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
  97. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
  98. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  99. package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
  100. package/Libraries/Components/Sound/SoundManager.js +1 -1
  101. package/Libraries/Components/StaticRenderer.js +1 -1
  102. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
  103. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
  104. package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
  105. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  106. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
  107. package/Libraries/Components/Switch/Switch.js +10 -3
  108. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
  109. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
  110. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
  111. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  112. package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
  113. package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
  114. package/Libraries/Components/TextInput/TextInput.flow.win32.js +12 -14
  115. package/Libraries/Components/TextInput/TextInput.js +42 -39
  116. package/Libraries/Components/TextInput/TextInput.win32.js +69 -38
  117. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  118. package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
  119. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
  120. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  121. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
  122. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  123. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
  124. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
  125. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
  126. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  127. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  128. package/Libraries/Components/Touchable/Position.js +1 -1
  129. package/Libraries/Components/Touchable/Touchable.js +17 -3
  130. package/Libraries/Components/Touchable/Touchable.win32.js +17 -3
  131. package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
  132. package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
  133. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
  134. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +5 -2
  135. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
  136. package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
  137. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  138. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
  139. package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
  140. package/Libraries/Components/View/View.js +114 -29
  141. package/Libraries/Components/View/View.win32.js +17 -3
  142. package/Libraries/Components/View/ViewAccessibility.d.ts +1 -0
  143. package/Libraries/Components/View/ViewAccessibility.js +1 -8
  144. package/Libraries/Components/View/ViewAccessibility.win32.js +1 -8
  145. package/Libraries/Components/View/ViewPropTypes.d.ts +22 -2
  146. package/Libraries/Components/View/ViewPropTypes.js +9 -1
  147. package/Libraries/Components/View/ViewPropTypes.win32.js +9 -1
  148. package/Libraries/Core/Devtools/getDevServer.js +1 -1
  149. package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
  150. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +49 -7
  151. package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
  152. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
  153. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  154. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  155. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  156. package/Libraries/Core/ExceptionsManager.js +27 -16
  157. package/Libraries/Core/InitializeCore.js +2 -23
  158. package/Libraries/Core/NativeExceptionsManager.js +1 -0
  159. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  160. package/Libraries/Core/ReactNativeVersion.js +3 -2
  161. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  162. package/Libraries/Core/Timers/JSTimers.js +1 -1
  163. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  164. package/Libraries/Core/Timers/immediateShim.js +1 -1
  165. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  166. package/Libraries/Core/checkNativeVersion.js +1 -0
  167. package/Libraries/Core/setUpDeveloperTools.js +13 -11
  168. package/Libraries/Core/setUpReactDevTools.js +21 -4
  169. package/Libraries/Debugging/DebuggingOverlay.js +12 -14
  170. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
  171. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  172. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  173. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  174. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  175. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  176. package/Libraries/Image/AssetRegistry.js +4 -10
  177. package/Libraries/Image/Image.android.js +113 -107
  178. package/Libraries/Image/Image.ios.js +10 -2
  179. package/Libraries/Image/Image.win32.js +11 -3
  180. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  181. package/Libraries/Image/ImageInjection.js +1 -1
  182. package/Libraries/Image/ImageSource.d.ts +5 -0
  183. package/Libraries/Image/ImageViewNativeComponent.js +3 -3
  184. package/Libraries/Image/NativeImageEditor.js +1 -0
  185. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  186. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  187. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  188. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  189. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  190. package/Libraries/Image/RelativeImageStub.js +2 -1
  191. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
  192. package/Libraries/Image/resolveAssetSource.js +1 -1
  193. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  194. package/Libraries/Interaction/InteractionManager.js +64 -54
  195. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  196. package/Libraries/Interaction/TaskQueue.js +8 -9
  197. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  198. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
  199. package/Libraries/Linking/Linking.js +1 -1
  200. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  201. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  202. package/Libraries/Lists/FlatList.d.ts +9 -5
  203. package/Libraries/Lists/FlatList.js +6 -7
  204. package/Libraries/Lists/SectionList.js +4 -4
  205. package/Libraries/Lists/SectionListModern.js +9 -3
  206. package/Libraries/Lists/VirtualizedList.js +3 -2
  207. package/Libraries/LogBox/Data/LogBoxData.js +7 -4
  208. package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
  209. package/Libraries/LogBox/LogBox.js +72 -99
  210. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  211. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  212. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -1
  213. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  214. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +3 -2
  215. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  216. package/Libraries/Modal/Modal.d.ts +8 -2
  217. package/Libraries/Modal/Modal.js +24 -3
  218. package/Libraries/Modal/NativeModalManager.js +1 -0
  219. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
  220. package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
  221. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
  222. package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
  223. package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -17
  224. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
  225. package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
  226. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  227. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  228. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  229. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  230. package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
  231. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  232. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  233. package/Libraries/Network/FormData.js +1 -1
  234. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  235. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  236. package/Libraries/Network/RCTNetworking.android.js +2 -2
  237. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  238. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  239. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  240. package/Libraries/Network/XMLHttpRequest.js +3 -3
  241. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  242. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
  243. package/Libraries/Pressability/Pressability.js +1 -1
  244. package/Libraries/Pressability/Pressability.win32.js +1 -1
  245. package/Libraries/Promise.js +1 -1
  246. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  247. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
  248. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  249. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  250. package/Libraries/ReactNative/AppContainer.js +1 -1
  251. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  252. package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
  253. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  254. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  255. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  256. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  257. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  258. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  259. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
  260. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
  261. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
  262. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  263. package/Libraries/ReactNative/RendererProxy.js +1 -1
  264. package/Libraries/ReactNative/RootTag.js +2 -2
  265. package/Libraries/ReactNative/renderApplication.js +1 -1
  266. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  267. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
  268. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
  269. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
  270. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
  271. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
  272. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
  273. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +261 -0
  274. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  275. package/Libraries/Settings/Settings.ios.js +1 -1
  276. package/Libraries/Settings/Settings.js +1 -1
  277. package/Libraries/Settings/SettingsFallback.js +1 -1
  278. package/Libraries/Share/NativeShareModule.js +1 -0
  279. package/Libraries/Share/Share.js +1 -1
  280. package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
  281. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  282. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  283. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
  284. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  285. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
  286. package/Libraries/StyleSheet/PointPropType.js +1 -1
  287. package/Libraries/StyleSheet/Rect.js +1 -1
  288. package/Libraries/StyleSheet/StyleSheet.js +1 -0
  289. package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
  290. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  291. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  292. package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
  293. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  294. package/Libraries/StyleSheet/processColor.js +1 -1
  295. package/Libraries/StyleSheet/processColorArray.js +1 -1
  296. package/Libraries/StyleSheet/processFilter.js +1 -2
  297. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  298. package/Libraries/StyleSheet/processTransform.js +1 -1
  299. package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
  300. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  301. package/Libraries/Text/Text.d.ts +7 -0
  302. package/Libraries/Text/Text.js +255 -246
  303. package/Libraries/Text/Text.win32.js +294 -285
  304. package/Libraries/Text/TextAncestor.js +3 -9
  305. package/Libraries/Text/TextAncestorContext.js +23 -0
  306. package/Libraries/Text/TextNativeComponent.js +4 -0
  307. package/Libraries/Text/TextNativeComponent.win32.js +4 -0
  308. package/Libraries/Text/TextProps.js +2 -5
  309. package/Libraries/Text/TextProps.win32.js +2 -7
  310. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  311. package/Libraries/Types/CodegenTypes.js +1 -1
  312. package/Libraries/Types/CodegenTypesNamespace.js +2 -1
  313. package/Libraries/Types/CoreEventTypes.d.ts +4 -0
  314. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  315. package/Libraries/Utilities/Appearance.js +1 -1
  316. package/Libraries/Utilities/BackHandler.js.flow +1 -1
  317. package/Libraries/Utilities/DevLoadingView.js +1 -1
  318. package/Libraries/Utilities/DeviceInfo.js +1 -1
  319. package/Libraries/Utilities/Dimensions.js +1 -1
  320. package/Libraries/Utilities/Dimensions.win32.js +1 -1
  321. package/Libraries/Utilities/HMRClient.js +13 -3
  322. package/Libraries/Utilities/HMRClientProdShim.js +1 -1
  323. package/Libraries/Utilities/NativeAppearance.js +1 -0
  324. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  325. package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
  326. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  327. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  328. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  329. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  330. package/Libraries/Utilities/PixelRatio.js +1 -1
  331. package/Libraries/Utilities/Platform.android.js +2 -5
  332. package/Libraries/Utilities/Platform.ios.js +2 -5
  333. package/Libraries/Utilities/Platform.js +1 -1
  334. package/Libraries/Utilities/Platform.js.flow +2 -2
  335. package/Libraries/Utilities/Platform.win32.js +2 -5
  336. package/Libraries/Utilities/PlatformTypes.js +2 -2
  337. package/Libraries/Utilities/RCTLog.js +1 -1
  338. package/Libraries/Utilities/SceneTracker.js +1 -1
  339. package/Libraries/Utilities/binaryToBase64.js +1 -1
  340. package/Libraries/Utilities/codegenNativeCommands.js +5 -3
  341. package/Libraries/Utilities/codegenNativeComponent.js +4 -4
  342. package/Libraries/Utilities/createPerformanceLogger.js +27 -20
  343. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  344. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  345. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  346. package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
  347. package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
  348. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  349. package/Libraries/Utilities/logError.js +1 -1
  350. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  351. package/Libraries/Utilities/stringifySafe.js +1 -1
  352. package/Libraries/Utilities/stringifyViewConfig.js +1 -1
  353. package/Libraries/Utilities/useColorScheme.js +1 -1
  354. package/Libraries/Utilities/useWindowDimensions.js +1 -1
  355. package/Libraries/Utilities/warnOnce.js +1 -1
  356. package/Libraries/Vibration/NativeVibration.js +1 -0
  357. package/Libraries/Vibration/Vibration.js +1 -2
  358. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  359. package/Libraries/WebSocket/WebSocket.js +1 -1
  360. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  361. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  362. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  363. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  364. package/index.js +22 -2
  365. package/index.win32.js +15 -2
  366. package/interface.js +1 -1
  367. package/jest/MockNativeMethods.js +9 -3
  368. package/jest/RefreshControlMock.js +32 -0
  369. package/jest/assetFileTransformer.js +1 -0
  370. package/jest/local-setup.js +4 -3
  371. package/jest/mock.js +39 -0
  372. package/jest/mockComponent.js +47 -17
  373. package/jest/mockNativeComponent.js +26 -15
  374. package/jest/mocks/AccessibilityInfo.js +62 -0
  375. package/jest/mocks/ActivityIndicator.js +23 -0
  376. package/jest/mocks/AppState.js +19 -0
  377. package/{flow/Stringish.js → jest/mocks/Clipboard.js} +6 -4
  378. package/jest/mocks/Image.js +23 -0
  379. package/jest/mocks/InitializeCore.js +9 -0
  380. package/jest/mocks/Linking.js +28 -0
  381. package/jest/mocks/Modal.js +33 -0
  382. package/jest/mocks/NativeComponentRegistry.js +30 -0
  383. package/jest/mocks/NativeModules.js +239 -0
  384. package/jest/mocks/RefreshControl.js +31 -0
  385. package/jest/mocks/RendererProxy.js +45 -0
  386. package/jest/mocks/ScrollView.js +58 -0
  387. package/jest/mocks/Text.js +27 -0
  388. package/jest/mocks/TextInput.js +32 -0
  389. package/jest/mocks/UIManager.js +60 -0
  390. package/jest/mocks/Vibration.js +16 -0
  391. package/jest/mocks/View.js +27 -0
  392. package/jest/mocks/ViewNativeComponent.js +23 -0
  393. package/jest/mocks/requireNativeComponent.js +22 -0
  394. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  395. package/jest/react-native-env.js +1 -0
  396. package/jest/renderer.js +1 -2
  397. package/jest/resolver.js +1 -0
  398. package/jest/setup.js +64 -445
  399. package/overrides.json +49 -42
  400. package/package.json +18 -18
  401. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  402. package/src/private/animated/NativeAnimatedHelper.win32.js +8 -1
  403. package/src/private/animated/createAnimatedPropsHook.js +14 -4
  404. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
  405. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  406. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  407. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  408. package/src/private/components/virtualview/VirtualView.js +145 -0
  409. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  410. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  411. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  412. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  413. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  414. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  415. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  416. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  417. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  418. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  419. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  420. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  421. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  422. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  423. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  424. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  425. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  426. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  427. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.win32.js +8 -9
  428. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  429. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  430. package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
  431. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  432. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
  433. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  434. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  435. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  436. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
  437. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
  438. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
  439. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
  440. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  441. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  442. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  443. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
  444. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  445. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
  446. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
  447. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  448. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
  449. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  450. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  451. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  452. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  453. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  454. package/src/private/styles/composeStyles.js +5 -12
  455. package/src/private/types/HostInstance.js +1 -1
  456. package/src/private/webapis/dom/events/Event.js +3 -0
  457. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  458. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  459. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  460. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  461. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  462. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  463. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  464. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  465. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  466. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  467. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  468. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  469. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  470. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  471. package/src/private/webapis/errors/DOMException.js +166 -0
  472. package/src/private/webapis/geometry/DOMRect.js +5 -0
  473. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  474. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  475. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  476. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  477. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  478. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
  479. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  480. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  481. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  482. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  483. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  484. package/src/private/webapis/performance/EventTiming.js +1 -1
  485. package/src/private/webapis/performance/LongTasks.js +1 -1
  486. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  487. package/src/private/webapis/performance/Performance.js +20 -9
  488. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  489. package/src/private/webapis/performance/PerformanceObserver.js +32 -28
  490. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  491. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  492. package/src/private/webapis/performance/UserTiming.js +1 -1
  493. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
  494. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  495. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  496. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  497. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  498. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  499. package/src-win/Libraries/Components/View/ViewAccessibility.d.ts +1 -0
  500. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +22 -2
  501. package/src-win/Libraries/Text/Text.d.ts +7 -0
  502. package/types/modules/Devtools.d.ts +23 -9
  503. package/Libraries/BugReporting/BugReporting.js +0 -140
  504. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  505. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  506. package/Libraries/BugReporting/getReactData.js +0 -187
  507. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  508. package/flow/HermesInternalType.js +0 -114
  509. package/flow/console.js +0 -49
  510. package/flow/global.js +0 -88
  511. package/jest/mockModal.js +0 -32
  512. package/jest/mockScrollView.js +0 -35
  513. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
@@ -13,7 +13,6 @@ import type {ExtendedExceptionData} from './Data/parseLogBoxLog';
13
13
 
14
14
  import Platform from '../Utilities/Platform';
15
15
  import RCTLog from '../Utilities/RCTLog';
16
- import {hasComponentStack} from './Data/parseLogBoxLog';
17
16
  import * as React from 'react';
18
17
 
19
18
  export type {LogData, ExtendedExceptionData, IgnorePattern};
@@ -28,6 +27,7 @@ interface ILogBox {
28
27
  ignoreAllLogs(value?: boolean): void;
29
28
  clearAllLogs(): void;
30
29
  addLog(log: LogData): void;
30
+ addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>): void;
31
31
  addException(error: ExtendedExceptionData): void;
32
32
  }
33
33
 
@@ -36,11 +36,12 @@ interface ILogBox {
36
36
  */
37
37
  if (__DEV__) {
38
38
  const LogBoxData = require('./Data/LogBoxData');
39
- const {parseLogBoxLog, parseInterpolation} = require('./Data/parseLogBoxLog');
39
+ const {
40
+ parseLogBoxLog,
41
+ parseComponentStack,
42
+ } = require('./Data/parseLogBoxLog');
40
43
 
41
- let originalConsoleError;
42
44
  let originalConsoleWarn;
43
- let consoleErrorImpl;
44
45
  let consoleWarnImpl: (...args: Array<mixed>) => void;
45
46
 
46
47
  let isLogBoxInstalled: boolean = false;
@@ -70,22 +71,20 @@ if (__DEV__) {
70
71
  // IMPORTANT: we only overwrite `console.error` and `console.warn` once.
71
72
  // When we uninstall we keep the same reference and only change its
72
73
  // internal implementation
73
- const isFirstInstall = originalConsoleError == null;
74
+ const isFirstInstall = originalConsoleWarn == null;
74
75
  if (isFirstInstall) {
75
- originalConsoleError = console.error.bind(console);
76
+ // We only patch warning for legacy reasons.
77
+ // This will be removed in the future, once warnings
78
+ // are fully moved to fusebox. Error handling is done
79
+ // via the ExceptionManager.
76
80
  originalConsoleWarn = console.warn.bind(console);
77
81
 
78
- // $FlowExpectedError[cannot-write]
79
- console.error = (...args) => {
80
- consoleErrorImpl(...args);
81
- };
82
82
  // $FlowExpectedError[cannot-write]
83
83
  console.warn = (...args) => {
84
84
  consoleWarnImpl(...args);
85
85
  };
86
86
  }
87
87
 
88
- consoleErrorImpl = registerError;
89
88
  consoleWarnImpl = registerWarning;
90
89
 
91
90
  if (Platform.isTesting) {
@@ -108,7 +107,6 @@ if (__DEV__) {
108
107
  // decorated again after installing LogBox. E.g.:
109
108
  // Before uninstalling: original > LogBox > OtherErrorHandler
110
109
  // After uninstalling: original > LogBox (noop) > OtherErrorHandler
111
- consoleErrorImpl = originalConsoleError;
112
110
  consoleWarnImpl = originalConsoleWarn;
113
111
  },
114
112
 
@@ -142,6 +140,64 @@ if (__DEV__) {
142
140
  }
143
141
  },
144
142
 
143
+ addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>) {
144
+ if (isLogBoxInstalled) {
145
+ let filteredLevel: 'warn' | 'error' | 'fatal' = level;
146
+ try {
147
+ let format = args[0];
148
+ if (typeof format === 'string') {
149
+ const filterResult =
150
+ require('../LogBox/Data/LogBoxData').checkWarningFilter(
151
+ // For legacy reasons, we strip the warning prefix from the message.
152
+ // Can remove this once we remove the warning module altogether.
153
+ format.replace(/^Warning: /, ''),
154
+ );
155
+ if (filterResult.monitorEvent !== 'warning_unhandled') {
156
+ if (filterResult.suppressCompletely) {
157
+ return;
158
+ }
159
+
160
+ if (filterResult.suppressDialog_LEGACY === true) {
161
+ filteredLevel = 'warn';
162
+ } else if (filterResult.forceDialogImmediately === true) {
163
+ filteredLevel = 'fatal'; // Do not downgrade. These are real bugs with same severity as throws.
164
+ }
165
+ args[0] = filterResult.finalFormat;
166
+ }
167
+ }
168
+
169
+ const result = parseLogBoxLog(args);
170
+ const category = result.category;
171
+ const message = result.message;
172
+ let componentStackType = result.componentStackType;
173
+ let componentStack = result.componentStack;
174
+ if (
175
+ (!componentStack || componentStack.length === 0) &&
176
+ // $FlowExpectedError[prop-missing]
177
+ React.captureOwnerStack
178
+ ) {
179
+ const ownerStack = React.captureOwnerStack();
180
+ if (ownerStack != null && ownerStack.length > 0) {
181
+ const parsedComponentStack = parseComponentStack(ownerStack);
182
+ componentStack = parsedComponentStack.stack;
183
+ componentStackType = parsedComponentStack.type;
184
+ }
185
+ }
186
+ if (!LogBoxData.isMessageIgnored(message.content)) {
187
+ LogBoxData.addLog({
188
+ level: filteredLevel,
189
+ category,
190
+ message,
191
+ componentStack,
192
+ componentStackType,
193
+ });
194
+ }
195
+ } catch (err) {
196
+ LogBoxData.reportLogBoxError(err);
197
+ }
198
+ }
199
+ },
200
+
145
201
  addException,
146
202
  };
147
203
 
@@ -157,14 +213,9 @@ if (__DEV__) {
157
213
  return typeof args[0] === 'string' && args[0].startsWith('(ADVICE)');
158
214
  };
159
215
 
160
- const isWarningModuleWarning = (...args: Array<mixed>) => {
161
- return typeof args[0] === 'string' && args[0].startsWith('Warning: ');
162
- };
163
-
164
216
  const registerWarning = (...args: Array<mixed>): void => {
165
217
  // Let warnings within LogBox itself fall through.
166
218
  if (LogBoxData.isLogBoxErrorMessage(String(args[0]))) {
167
- originalConsoleError(...args);
168
219
  return;
169
220
  } else {
170
221
  // Be sure to pass LogBox warnings through.
@@ -190,88 +241,6 @@ if (__DEV__) {
190
241
  LogBoxData.reportLogBoxError(err);
191
242
  }
192
243
  };
193
-
194
- /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
195
- * LTI update could not be added via codemod */
196
- const registerError = (...args): void => {
197
- // Let errors within LogBox itself fall through.
198
- if (LogBoxData.isLogBoxErrorMessage(args[0])) {
199
- originalConsoleError(...args);
200
- return;
201
- }
202
-
203
- try {
204
- let stack;
205
- // $FlowFixMe[prop-missing] Not added to flow types yet.
206
- if (!hasComponentStack(args) && React.captureOwnerStack != null) {
207
- stack = React.captureOwnerStack();
208
- if (!hasComponentStack(args)) {
209
- if (stack != null && stack !== '') {
210
- args[0] = args[0] += '%s';
211
- args.push(stack);
212
- }
213
- }
214
- }
215
- if (!isWarningModuleWarning(...args) && !hasComponentStack(args)) {
216
- // Only show LogBox for the 'warning' module, or React errors with
217
- // component stacks, otherwise pass the error through.
218
- //
219
- // By passing through, this will get picked up by the React console override,
220
- // potentially adding the component stack. React then passes it back to the
221
- // React Native ExceptionsManager, which reports it to LogBox as an error.
222
- //
223
- // Ideally, we refactor all RN error handling so that LogBox patching
224
- // errors is not necessary, and they are reported the same as a framework.
225
- // The blocker to this is that the ExceptionManager console.error override
226
- // strigifys all of the args before passing it through to LogBox, which
227
- // would lose all of the interpolation information.
228
- //
229
- // The 'warning' module needs to be handled here because React internally calls
230
- // `console.error('Warning: ')` with the component stack already included.
231
- originalConsoleError(...args);
232
- return;
233
- }
234
-
235
- const format = args[0].replace('Warning: ', '');
236
- const filterResult = LogBoxData.checkWarningFilter(format);
237
- let level = 'error';
238
- if (filterResult.monitorEvent !== 'warning_unhandled') {
239
- if (filterResult.suppressCompletely) {
240
- return;
241
- }
242
-
243
- if (filterResult.suppressDialog_LEGACY === true) {
244
- level = 'warn';
245
- } else if (filterResult.forceDialogImmediately === true) {
246
- level = 'fatal'; // Do not downgrade. These are real bugs with same severity as throws.
247
- }
248
- }
249
-
250
- // Unfortunately, we need to add the Warning: prefix back for downstream dependencies.
251
- // Downstream, we check for this prefix to know that LogBox already handled it, so
252
- // it doesn't get reported back to LogBox. It's an absolute mess.
253
- args[0] = `Warning: ${filterResult.finalFormat}`;
254
- const {category, message, componentStack, componentStackType} =
255
- parseLogBoxLog(args);
256
-
257
- // Interpolate the message so they are formatted for adb and other CLIs.
258
- // This is different than the message.content above because it includes component stacks.
259
- const interpolated = parseInterpolation(args);
260
- originalConsoleError(interpolated.message.content);
261
-
262
- if (!LogBoxData.isMessageIgnored(message.content)) {
263
- LogBoxData.addLog({
264
- level,
265
- category,
266
- message,
267
- componentStack,
268
- componentStackType,
269
- });
270
- }
271
- } catch (err) {
272
- LogBoxData.reportLogBoxError(err);
273
- }
274
- };
275
244
  } else {
276
245
  LogBox = {
277
246
  install(): void {
@@ -302,6 +271,10 @@ if (__DEV__) {
302
271
  // Do nothing.
303
272
  },
304
273
 
274
+ addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>): void {
275
+ // Do nothing.
276
+ },
277
+
305
278
  addException(error: ExtendedExceptionData): void {
306
279
  // Do nothing.
307
280
  },
@@ -17,6 +17,7 @@ import View from '../../Components/View/View';
17
17
  import StyleSheet from '../../StyleSheet/StyleSheet';
18
18
  import * as LogBoxStyle from './LogBoxStyle';
19
19
  import * as React from 'react';
20
+ import {useState} from 'react';
20
21
 
21
22
  type Props = $ReadOnly<{
22
23
  id?: string,
@@ -31,7 +32,7 @@ type Props = $ReadOnly<{
31
32
  }>;
32
33
 
33
34
  function LogBoxButton(props: Props): React.Node {
34
- const [pressed, setPressed] = React.useState(false);
35
+ const [pressed, setPressed] = useState(false);
35
36
 
36
37
  let backgroundColor = props.backgroundColor;
37
38
  if (!backgroundColor) {
@@ -19,6 +19,7 @@ import LogBoxButton from './LogBoxButton';
19
19
  import LogBoxInspectorSection from './LogBoxInspectorSection';
20
20
  import * as LogBoxStyle from './LogBoxStyle';
21
21
  import * as React from 'react';
22
+ import {useState} from 'react';
22
23
 
23
24
  type Props = $ReadOnly<{
24
25
  log: LogBoxLog,
@@ -49,7 +50,7 @@ function getPrettyFileName(path: string) {
49
50
  return fileName;
50
51
  }
51
52
  function LogBoxInspectorReactFrames(props: Props): React.Node {
52
- const [collapsed, setCollapsed] = React.useState(true);
53
+ const [collapsed, setCollapsed] = useState(true);
53
54
  if (
54
55
  props.log.getAvailableComponentStack() == null ||
55
56
  props.log.getAvailableComponentStack().length < 1
@@ -19,6 +19,7 @@ import LogBoxButton from './LogBoxButton';
19
19
  import LogBoxInspectorSection from './LogBoxInspectorSection';
20
20
  import * as LogBoxStyle from './LogBoxStyle';
21
21
  import * as React from 'react';
22
+ import {useState} from 'react';
22
23
 
23
24
  type Props = $ReadOnly<{
24
25
  log: LogBoxLog,
@@ -49,7 +50,7 @@ function getPrettyFileName(path: string) {
49
50
  return fileName;
50
51
  }
51
52
  function LogBoxInspectorReactFrames(props: Props): React.Node {
52
- const [collapsed, setCollapsed] = React.useState(true);
53
+ const [collapsed, setCollapsed] = useState(true);
53
54
  if (
54
55
  props.log.getAvailableComponentStack() == null ||
55
56
  props.log.getAvailableComponentStack().length < 1
@@ -17,6 +17,7 @@ import Text from '../../Text/Text';
17
17
  import LogBoxButton from './LogBoxButton';
18
18
  import * as LogBoxStyle from './LogBoxStyle';
19
19
  import * as React from 'react';
20
+ import {useEffect, useState} from 'react';
20
21
 
21
22
  type Props = $ReadOnly<{
22
23
  onPress?: ?(event: GestureResponderEvent) => void,
@@ -24,12 +25,12 @@ type Props = $ReadOnly<{
24
25
  }>;
25
26
 
26
27
  function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
27
- const [state, setState] = React.useState({
28
+ const [state, setState] = useState({
28
29
  animation: null,
29
30
  rotate: null,
30
31
  });
31
32
 
32
- React.useEffect(() => {
33
+ useEffect(() => {
33
34
  if (props.status === 'PENDING') {
34
35
  if (state.animation == null) {
35
36
  const animated = new Animated.Value(0);
@@ -17,6 +17,7 @@ import Text from '../../Text/Text';
17
17
  import LogBoxButton from './LogBoxButton';
18
18
  import * as LogBoxStyle from './LogBoxStyle';
19
19
  import * as React from 'react';
20
+ import {useEffect, useState} from 'react';
20
21
 
21
22
  type Props = $ReadOnly<{
22
23
  onPress?: ?(event: GestureResponderEvent) => void,
@@ -26,12 +27,12 @@ type Props = $ReadOnly<{
26
27
  function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
27
28
  // [Win32] Dont use Animated
28
29
  /*
29
- const [state, setState] = React.useState({
30
+ const [state, setState] = useState({
30
31
  animation: null,
31
32
  rotate: null,
32
33
  });
33
34
 
34
- React.useEffect(() => {
35
+ useEffect(() => {
35
36
  if (props.status === 'PENDING') {
36
37
  if (state.animation == null) {
37
38
  const animated = new Animated.Value(0);
@@ -22,6 +22,7 @@ import LogBoxInspectorSourceMapStatus from './LogBoxInspectorSourceMapStatus';
22
22
  import LogBoxInspectorStackFrame from './LogBoxInspectorStackFrame';
23
23
  import * as LogBoxStyle from './LogBoxStyle';
24
24
  import * as React from 'react';
25
+ import {useState} from 'react';
25
26
 
26
27
  type Props = $ReadOnly<{
27
28
  log: LogBoxLog,
@@ -65,7 +66,7 @@ export function getCollapseMessage(
65
66
  }
66
67
 
67
68
  function LogBoxInspectorStackFrames(props: Props): React.Node {
68
- const [collapsed, setCollapsed] = React.useState(() => {
69
+ const [collapsed, setCollapsed] = useState(() => {
69
70
  // Only collapse frames initially if some frames are not collapsed.
70
71
  return props.log.getAvailableStack().some(({collapse}) => !collapse);
71
72
  });
@@ -35,9 +35,9 @@ export interface ModalBaseProps {
35
35
  */
36
36
  visible?: boolean | undefined;
37
37
  /**
38
- * The `onRequestClose` callback is called when the user taps the hardware back button on Android or the menu button on Apple TV.
38
+ * The `onRequestClose` callback is called when the user taps the hardware back button on Android, dismisses the sheet using a gesture on iOS (when `allowSwipeDismissal` is set to true) or the menu button on Apple TV.
39
39
  *
40
- * This is required on Apple TV and Android.
40
+ * This is required on iOS and Android.
41
41
  */
42
42
  onRequestClose?: ((event: NativeSyntheticEvent<any>) => void) | undefined;
43
43
  /**
@@ -89,6 +89,12 @@ export interface ModalPropsIOS {
89
89
  onOrientationChange?:
90
90
  | ((event: NativeSyntheticEvent<any>) => void)
91
91
  | undefined;
92
+
93
+ /**
94
+ * Controls whether the modal can be dismissed by swiping down on iOS.
95
+ * This requires you to implement the `onRequestClose` prop to handle the dismissal.
96
+ */
97
+ allowSwipeDismissal?: boolean | undefined;
92
98
  }
93
99
 
94
100
  export interface ModalPropsAndroid {
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {HostInstance} from '../../src/private/types/HostInstance';
@@ -86,9 +86,9 @@ export type ModalBaseProps = {
86
86
  */
87
87
  visible?: ?boolean,
88
88
  /**
89
- * The `onRequestClose` callback is called when the user taps the hardware back button on Android or the menu button on Apple TV.
89
+ * The `onRequestClose` callback is called when the user taps the hardware back button on Android, dismisses the sheet using a gesture on iOS (when `allowSwipeDismissal` is set to true) or the menu button on Apple TV.
90
90
  *
91
- * This is required on Apple TV and Android.
91
+ * This is required on iOS and Android.
92
92
  */
93
93
  // onRequestClose?: (event: NativeSyntheticEvent<any>) => void;
94
94
  onRequestClose?: ?DirectEventHandler<null>,
@@ -147,6 +147,12 @@ export type ModalPropsIOS = {
147
147
  // | ((event: NativeSyntheticEvent<any>) => void)
148
148
  // | undefined;
149
149
  onOrientationChange?: ?DirectEventHandler<OrientationChangeEvent>,
150
+
151
+ /**
152
+ * Controls whether the modal can be dismissed by swiping down on iOS.
153
+ * This requires you to implement the `onRequestClose` prop to handle the dismissal.
154
+ */
155
+ allowSwipeDismissal?: ?boolean,
150
156
  };
151
157
 
152
158
  export type ModalPropsAndroid = {
@@ -192,6 +198,16 @@ function confirmProps(props: ModalProps) {
192
198
  'Modal with translucent navigation bar and without translucent status bar is not supported.',
193
199
  );
194
200
  }
201
+
202
+ if (
203
+ Platform.OS === 'ios' &&
204
+ props.allowSwipeDismissal === true &&
205
+ !props.onRequestClose
206
+ ) {
207
+ console.warn(
208
+ 'Modal requires the onRequestClose prop when used with `allowSwipeDismissal`. This is necessary to prevent state corruption.',
209
+ );
210
+ }
195
211
  }
196
212
  }
197
213
 
@@ -308,6 +324,8 @@ class Modal extends React.Component<ModalProps, ModalState> {
308
324
 
309
325
  return (
310
326
  <RCTModalHostView
327
+ /* $FlowFixMe[incompatible-type] Natural Inference rollout. See
328
+ * https://fburl.com/workplace/6291gfvu */
311
329
  animationType={animationType}
312
330
  presentationStyle={presentationStyle}
313
331
  transparent={this.props.transparent}
@@ -325,6 +343,7 @@ class Modal extends React.Component<ModalProps, ModalState> {
325
343
  onStartShouldSetResponder={this._shouldSetResponder}
326
344
  supportedOrientations={this.props.supportedOrientations}
327
345
  onOrientationChange={this.props.onOrientationChange}
346
+ allowSwipeDismissal={this.props.allowSwipeDismissal}
328
347
  testID={this.props.testID}>
329
348
  <VirtualizedListContextResetter>
330
349
  <ScrollView.Context.Provider value={null}>
@@ -351,6 +370,8 @@ const styles = StyleSheet.create({
351
370
  modal: {
352
371
  position: 'absolute',
353
372
  },
373
+ /* $FlowFixMe[incompatible-call] Natural Inference rollout. See
374
+ * https://fburl.com/workplace/6291gfvu */
354
375
  container: {
355
376
  /* $FlowFixMe[invalid-computed-prop] (>=0.111.0 site=react_native_fb) This
356
377
  * comment suppresses an error found when Flow v0.111 was deployed. To see
@@ -10,4 +10,5 @@
10
10
 
11
11
  export * from '../../src/private/specs_DEPRECATED/modules/NativeModalManager';
12
12
  import NativeModalManager from '../../src/private/specs_DEPRECATED/modules/NativeModalManager';
13
+
13
14
  export default NativeModalManager;
@@ -4,10 +4,11 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  export * from '../../src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent';
12
12
  import RCTModalHostViewNativeComponent from '../../src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent';
13
+
13
14
  export default RCTModalHostViewNativeComponent;
@@ -4,14 +4,13 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
12
12
 
13
13
  import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
14
- import NativeReactNativeFeatureFlags from '../../src/private/featureflags/specs/NativeReactNativeFeatureFlags';
15
14
  import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
16
15
  import {DynamicallyInjectedByGestureHandler} from './ViewConfigIgnore';
17
16
 
@@ -111,6 +110,18 @@ const bubblingEventTypes = {
111
110
  bubbled: 'onClick',
112
111
  },
113
112
  },
113
+ topBlur: {
114
+ phasedRegistrationNames: {
115
+ captured: 'onBlurCapture',
116
+ bubbled: 'onBlur',
117
+ },
118
+ },
119
+ topFocus: {
120
+ phasedRegistrationNames: {
121
+ captured: 'onFocusCapture',
122
+ bubbled: 'onFocus',
123
+ },
124
+ },
114
125
  };
115
126
 
116
127
  const directEventTypes = {
@@ -171,20 +182,12 @@ const validAttributesForNonEventProps = {
171
182
  experimental_backgroundImage: {
172
183
  process: require('../StyleSheet/processBackgroundImage').default,
173
184
  },
174
- boxShadow:
175
- NativeReactNativeFeatureFlags != null &&
176
- ReactNativeFeatureFlags.enableNativeCSSParsing()
177
- ? true
178
- : {
179
- process: require('../StyleSheet/processBoxShadow').default,
180
- },
181
- filter:
182
- NativeReactNativeFeatureFlags != null &&
183
- ReactNativeFeatureFlags.enableNativeCSSParsing()
184
- ? true
185
- : {
186
- process: require('../StyleSheet/processFilter').default,
187
- },
185
+ boxShadow: ReactNativeFeatureFlags.enableNativeCSSParsing()
186
+ ? (true as const)
187
+ : {process: require('../StyleSheet/processBoxShadow').default},
188
+ filter: ReactNativeFeatureFlags.enableNativeCSSParsing()
189
+ ? (true as const)
190
+ : {process: require('../StyleSheet/processFilter').default},
188
191
  mixBlendMode: true,
189
192
  isolation: true,
190
193
  opacity: true,
@@ -369,7 +372,7 @@ const validAttributesForNonEventProps = {
369
372
  },
370
373
  focusable: true,
371
374
  backfaceVisibility: true,
372
- };
375
+ } as const;
373
376
 
374
377
  // Props for bubbling and direct events
375
378
  const validAttributesForEventProps = {
@@ -409,7 +412,7 @@ const validAttributesForEventProps = {
409
412
  onPointerOutCapture: true,
410
413
  onPointerOver: true,
411
414
  onPointerOverCapture: true,
412
- };
415
+ } as const;
413
416
 
414
417
  /**
415
418
  * On Android, Props are derived from a ViewManager and its ShadowNode.
@@ -4,14 +4,13 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
12
12
 
13
13
  import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
14
- import NativeReactNativeFeatureFlags from '../../src/private/featureflags/specs/NativeReactNativeFeatureFlags';
15
14
  import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
16
15
  import {
17
16
  ConditionallyIgnoredEventHandlers,
@@ -229,20 +228,12 @@ const validAttributesForNonEventProps = {
229
228
  hitSlop: {diff: require('../Utilities/differ/insetsDiffer').default},
230
229
  collapsable: true,
231
230
  collapsableChildren: true,
232
- filter:
233
- NativeReactNativeFeatureFlags != null &&
234
- ReactNativeFeatureFlags.enableNativeCSSParsing()
235
- ? true
236
- : {
237
- process: require('../StyleSheet/processFilter').default,
238
- },
239
- boxShadow:
240
- NativeReactNativeFeatureFlags != null &&
241
- ReactNativeFeatureFlags.enableNativeCSSParsing()
242
- ? true
243
- : {
244
- process: require('../StyleSheet/processBoxShadow').default,
245
- },
231
+ filter: ReactNativeFeatureFlags.enableNativeCSSParsing()
232
+ ? (true as const)
233
+ : {process: require('../StyleSheet/processFilter').default},
234
+ boxShadow: ReactNativeFeatureFlags.enableNativeCSSParsing()
235
+ ? (true as const)
236
+ : {process: require('../StyleSheet/processBoxShadow').default},
246
237
  mixBlendMode: true,
247
238
  isolation: true,
248
239
 
@@ -369,7 +360,7 @@ const validAttributesForNonEventProps = {
369
360
  direction: true,
370
361
 
371
362
  style: ReactNativeStyleAttributes,
372
- };
363
+ } as const;
373
364
 
374
365
  // Props for bubbling and direct events
375
366
  const validAttributesForEventProps = ConditionallyIgnoredEventHandlers({
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
@@ -4,14 +4,13 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
12
12
 
13
13
  import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
14
- import NativeReactNativeFeatureFlags from '../../src/private/featureflags/specs/NativeReactNativeFeatureFlags';
15
14
  import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
16
15
  import {
17
16
  ConditionallyIgnoredEventHandlers,
@@ -225,20 +224,12 @@ const validAttributesForNonEventProps = {
225
224
  hitSlop: {diff: require('../Utilities/differ/insetsDiffer').default},
226
225
  collapsable: true,
227
226
  collapsableChildren: true,
228
- experimental_filter:
229
- NativeReactNativeFeatureFlags != null &&
230
- ReactNativeFeatureFlags.enableNativeCSSParsing()
231
- ? true
232
- : {
233
- process: require('../StyleSheet/processFilter').default,
234
- },
235
- boxShadow:
236
- NativeReactNativeFeatureFlags != null &&
237
- ReactNativeFeatureFlags.enableNativeCSSParsing()
238
- ? true
239
- : {
240
- process: require('../StyleSheet/processBoxShadow').default,
241
- },
227
+ experimental_filter: ReactNativeFeatureFlags.enableNativeCSSParsing()
228
+ ? (true as const)
229
+ : {process: require('../StyleSheet/processFilter').default},
230
+ boxShadow: ReactNativeFeatureFlags.enableNativeCSSParsing()
231
+ ? (true as const)
232
+ : {process: require('../StyleSheet/processBoxShadow').default},
242
233
  mixBlendMode: true,
243
234
  isolation: true,
244
235
 
@@ -359,7 +350,7 @@ const validAttributesForNonEventProps = {
359
350
  direction: true,
360
351
 
361
352
  style: ReactNativeStyleAttributes,
362
- };
353
+ } as const;
363
354
 
364
355
  // Props for bubbling and direct events
365
356
  const validAttributesForEventProps = ConditionallyIgnoredEventHandlers({