react-native-windows 0.74.12 → 0.75.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/.flowconfig +8 -2
  2. package/Common/Utilities.cpp +2 -2
  3. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
  4. package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
  5. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
  6. package/Libraries/Animated/AnimatedImplementation.js +2 -0
  7. package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
  8. package/Libraries/Animated/createAnimatedComponent.js +10 -4
  9. package/Libraries/Animated/useAnimatedProps.js +56 -28
  10. package/Libraries/BatchedBridge/MessageQueue.js +1 -0
  11. package/Libraries/Components/Button.js +10 -5
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
  13. package/Libraries/Components/Flyout/Flyout.js +10 -10
  14. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
  15. package/Libraries/Components/Pressable/Pressable.js +13 -6
  16. package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
  17. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
  18. package/Libraries/Components/ScrollView/ScrollView.js +109 -29
  19. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
  20. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
  21. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
  22. package/Libraries/Components/StatusBar/StatusBar.js +1 -21
  23. package/Libraries/Components/Switch/Switch.windows.js +2 -0
  24. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
  25. package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
  26. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
  27. package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
  28. package/Libraries/Components/TextInput/TextInput.js +14 -70
  29. package/Libraries/Components/TextInput/TextInput.windows.js +15 -72
  30. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
  31. package/Libraries/Components/Touchable/Touchable.js +2 -2
  32. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
  33. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
  34. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
  35. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
  36. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
  37. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
  38. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
  39. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
  40. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
  41. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
  42. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  43. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  44. package/Libraries/Components/View/View.js +0 -11
  45. package/Libraries/Components/View/View.windows.js +0 -11
  46. package/Libraries/Components/View/ViewAccessibility.js +4 -4
  47. package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
  48. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
  49. package/Libraries/Components/View/ViewPropTypes.js +7 -0
  50. package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
  51. package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
  52. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
  53. package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
  54. package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
  55. package/Libraries/Core/ErrorHandlers.js +116 -0
  56. package/Libraries/Core/ExceptionsManager.js +2 -2
  57. package/Libraries/Core/ReactNativeVersion.js +3 -3
  58. package/Libraries/Core/setUpDeveloperTools.js +3 -1
  59. package/Libraries/Core/setUpPerformance.js +6 -4
  60. package/Libraries/Core/setUpReactDevTools.js +70 -10
  61. package/Libraries/Core/setUpTimers.js +50 -31
  62. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  63. package/Libraries/Image/Image.android.js +23 -13
  64. package/Libraries/Image/Image.d.ts +14 -15
  65. package/Libraries/Image/Image.ios.js +21 -11
  66. package/Libraries/Image/Image.windows.js +21 -11
  67. package/Libraries/Image/ImageProps.js +16 -5
  68. package/Libraries/Image/ImageTypes.flow.js +7 -2
  69. package/Libraries/Image/ImageUtils.js +1 -0
  70. package/Libraries/Image/ImageViewNativeComponent.js +2 -1
  71. package/Libraries/Inspector/ElementBox.js +6 -3
  72. package/Libraries/Inspector/ElementProperties.js +1 -1
  73. package/Libraries/Interaction/TouchHistoryMath.js +4 -4
  74. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
  75. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  76. package/Libraries/LogBox/Data/LogBoxData.js +39 -29
  77. package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
  78. package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
  79. package/Libraries/LogBox/LogBox.js +29 -12
  80. package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
  81. package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
  82. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  83. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
  84. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  85. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
  86. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
  87. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  88. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
  89. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
  90. package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
  91. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  92. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  93. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  94. package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
  95. package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
  96. package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
  97. package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
  98. package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
  99. package/Libraries/Network/XMLHttpRequest.js +5 -1
  100. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  101. package/Libraries/Pressability/Pressability.js +3 -51
  102. package/Libraries/Pressability/Pressability.windows.js +3 -51
  103. package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
  104. package/Libraries/ReactNative/AppRegistry.js +2 -4
  105. package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
  106. package/Libraries/ReactNative/FabricUIManager.js +0 -51
  107. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
  108. package/Libraries/ReactNative/RendererImplementation.js +20 -2
  109. package/Libraries/ReactNative/UIManager.d.ts +0 -21
  110. package/Libraries/ReactNative/UIManagerProperties.js +0 -3
  111. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
  112. package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
  113. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
  114. package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
  115. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
  116. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
  117. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
  118. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
  119. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  120. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  121. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  122. package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
  123. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
  124. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  125. package/Libraries/Share/Share.d.ts +16 -10
  126. package/Libraries/Share/Share.js +14 -15
  127. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
  128. package/Libraries/StyleSheet/StyleSheet.js +3 -10
  129. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
  130. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
  131. package/Libraries/StyleSheet/flattenStyle.js +1 -0
  132. package/Libraries/StyleSheet/processFilter.js +132 -0
  133. package/Libraries/StyleSheet/processTransform.js +18 -3
  134. package/Libraries/Text/Text.js +151 -128
  135. package/Libraries/Text/Text.windows.js +144 -128
  136. package/Libraries/Text/TextNativeComponent.js +5 -4
  137. package/Libraries/Text/TextProps.js +6 -6
  138. package/Libraries/Text/TextProps.windows.js +6 -6
  139. package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
  140. package/Libraries/Types/CodegenTypes.js +3 -0
  141. package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
  142. package/Libraries/Utilities/Dimensions.js +1 -0
  143. package/Libraries/Utilities/HMRClient.js +36 -8
  144. package/Libraries/Utilities/HMRClientProdShim.js +1 -0
  145. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  146. package/Libraries/Utilities/Platform.android.js +4 -4
  147. package/Libraries/Utilities/RCTLog.js +1 -0
  148. package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
  149. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
  150. package/Libraries/__tests__/ViewWindows-test.js +6 -6
  151. package/Libraries/promiseRejectionTrackingOptions.js +1 -0
  152. package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
  153. package/Microsoft.ReactNative/ComponentView.idl +0 -17
  154. package/Microsoft.ReactNative/Composition.Input.idl +3 -3
  155. package/Microsoft.ReactNative/CompositionSwitcher.idl +0 -1
  156. package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
  157. package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
  158. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +0 -3
  159. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +2 -2
  160. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +4 -4
  161. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -10
  162. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +27 -16
  163. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +1 -1
  164. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +48 -85
  165. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +0 -4
  166. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +24 -24
  167. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +6 -8
  168. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +0 -10
  169. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +0 -3
  170. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +29 -45
  171. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +1 -3
  172. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +6 -43
  173. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +23 -34
  174. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
  175. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
  176. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
  177. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +17 -48
  178. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -7
  179. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -16
  180. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
  181. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
  182. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
  183. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
  184. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
  185. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
  186. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
  187. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
  188. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  189. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
  190. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
  191. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +13 -20
  192. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  193. package/Microsoft.ReactNative/Timer.idl +1 -3
  194. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
  195. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
  196. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  197. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
  198. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  199. package/Microsoft.ReactNative/packages.lock.json +41 -78
  200. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  201. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
  202. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
  203. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
  204. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
  205. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  206. package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
  207. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
  208. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  209. package/README.md +21 -21
  210. package/ReactCommon/ReactCommon.vcxproj +2 -0
  211. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  212. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
  213. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
  214. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
  215. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
  216. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
  219. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
  220. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
  221. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
  222. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
  223. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
  224. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
  225. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
  226. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
  227. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
  228. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +4 -0
  229. package/Scripts/rnw-dependencies.ps1 +36 -23
  230. package/Shared/HermesRuntimeHolder.cpp +19 -1
  231. package/Shared/HermesRuntimeHolder.h +8 -1
  232. package/Shared/HermesSamplingProfiler.cpp +1 -2
  233. package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
  234. package/Shared/OInstance.cpp +1 -2
  235. package/Shared/Shared.vcxitems +21 -15
  236. package/Shared/Shared.vcxitems.filters +8 -3
  237. package/Shared/Threading/BatchingQueueThread.cpp +6 -2
  238. package/Shared/Threading/BatchingQueueThread.h +2 -2
  239. package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
  240. package/codegen/NativeAppStateSpec.g.h +8 -8
  241. package/codegen/NativeBlobModuleSpec.g.h +0 -10
  242. package/codegen/NativeDOMSpec.g.h +136 -0
  243. package/codegen/NativeDevSettingsSpec.g.h +11 -5
  244. package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
  245. package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
  246. package/codegen/NativeMicrotasksSpec.g.h +34 -0
  247. package/codegen/NativePerformanceSpec.g.h +35 -7
  248. package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
  249. package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
  250. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
  251. package/codegen/NativeUIManagerSpec.g.h +5 -17
  252. package/codegen/react/components/rnwcore/Props.cpp +1 -1
  253. package/codegen/react/components/rnwcore/Props.h +16 -12
  254. package/codegen/react/components/rnwcore/States.h +0 -26
  255. package/codegen/rnwcoreJSI-generated.cpp +688 -463
  256. package/codegen/rnwcoreJSI.h +1374 -2867
  257. package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
  258. package/fmt/fmt.vcxproj +1 -1
  259. package/jest/mockComponent.js +7 -0
  260. package/jest/renderer.js +25 -14
  261. package/jest/setup.js +19 -13
  262. package/package.json +29 -27
  263. package/rn-get-polyfills.js +1 -0
  264. package/src/private/core/composeStyles.js +27 -0
  265. package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
  266. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  267. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
  268. package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
  269. package/src/private/specs/modules/NativeBlobModule.js +4 -2
  270. package/src/private/specs/modules/NativeDevSettings.js +1 -0
  271. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
  272. package/src/private/specs/modules/NativeUIManager.js +0 -7
  273. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
  274. package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
  275. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
  276. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
  277. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
  278. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  279. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  280. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
  281. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
  282. package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
  283. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  284. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  285. package/src/private/webapis/performance/EventCounts.js +1 -1
  286. package/src/private/webapis/performance/MemoryInfo.js +9 -9
  287. package/src/private/webapis/performance/Performance.js +10 -56
  288. package/src/private/webapis/performance/PerformanceObserver.js +30 -22
  289. package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
  290. package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
  291. package/src/private/webapis/performance/UserTiming.js +63 -0
  292. package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
  293. package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
  294. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
  295. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
  296. package/stubs/glog/logging.h +1 -0
  297. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  298. package/template/cs-lib/proj/MyLib.csproj +1 -1
  299. package/template/metro.config.js +13 -2
  300. package/templates/cpp-app/template.config.js +1 -1
  301. package/templates/cpp-lib/example/metro.config.js +2 -2
  302. package/templates/cpp-lib/template.config.js +1 -1
  303. package/templates/old/generateWrapper.js +4 -1
  304. package/types/modules/globals.d.ts +4 -0
  305. package/Libraries/Lists/FlatList.windows.js +0 -717
  306. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
  307. package/Libraries/Utilities/LoadingView.ios.js +0 -50
  308. package/Libraries/Utilities/LoadingView.js +0 -16
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
  312. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
  313. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2377
  314. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.cpp +0 -140
  315. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -92
  316. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  317. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.cpp +0 -48
  318. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -122
  319. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -366
  320. package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
  321. package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
  322. package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
  323. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
  324. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
  325. package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
  326. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
  327. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
  328. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
  329. package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
  330. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
  331. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
  332. package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
  333. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
  334. package/template/metro.devMode.config.js +0 -56
  335. /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
@@ -9,40 +9,37 @@
9
9
  */
10
10
 
11
11
  import Keyboard from '../../Components/Keyboard/Keyboard';
12
- import ScrollView from '../../Components/ScrollView/ScrollView';
13
12
  import View from '../../Components/View/View';
14
13
  import StyleSheet from '../../StyleSheet/StyleSheet';
15
14
  import * as LogBoxData from '../Data/LogBoxData';
16
15
  import LogBoxLog, {type LogLevel} from '../Data/LogBoxLog';
17
- import LogBoxInspectorCodeFrame from './LogBoxInspectorCodeFrame';
16
+ import LogBoxInspectorBody from './LogBoxInspectorBody';
18
17
  import LogBoxInspectorFooter from './LogBoxInspectorFooter';
19
18
  import LogBoxInspectorHeader from './LogBoxInspectorHeader';
20
- import LogBoxInspectorMessageHeader from './LogBoxInspectorMessageHeader';
21
- import LogBoxInspectorReactFrames from './LogBoxInspectorReactFrames';
22
- import LogBoxInspectorStackFrames from './LogBoxInspectorStackFrames';
23
19
  import * as LogBoxStyle from './LogBoxStyle';
24
20
  import * as React from 'react';
21
+ import {useEffect} from 'react';
25
22
 
26
- type Props = $ReadOnly<{|
23
+ type Props = $ReadOnly<{
27
24
  onDismiss: () => void,
28
25
  onChangeSelectedIndex: (index: number) => void,
29
26
  onMinimize: () => void,
30
27
  logs: $ReadOnlyArray<LogBoxLog>,
31
28
  selectedIndex: number,
32
29
  fatalType?: ?LogLevel,
33
- |}>;
30
+ }>;
34
31
 
35
- function LogBoxInspector(props: Props): React.Node {
32
+ export default function LogBoxInspector(props: Props): React.Node {
36
33
  const {logs, selectedIndex} = props;
37
34
  let log = logs[selectedIndex];
38
35
 
39
- React.useEffect(() => {
36
+ useEffect(() => {
40
37
  if (log) {
41
38
  LogBoxData.symbolicateLogNow(log);
42
39
  }
43
40
  }, [log]);
44
41
 
45
- React.useEffect(() => {
42
+ useEffect(() => {
46
43
  // Optimistically symbolicate the last and next logs.
47
44
  if (logs.length > 1) {
48
45
  const selected = selectedIndex;
@@ -54,7 +51,7 @@ function LogBoxInspector(props: Props): React.Node {
54
51
  }
55
52
  }, [logs, selectedIndex]);
56
53
 
57
- React.useEffect(() => {
54
+ useEffect(() => {
58
55
  Keyboard.dismiss();
59
56
  }, []);
60
57
 
@@ -84,68 +81,9 @@ function LogBoxInspector(props: Props): React.Node {
84
81
  );
85
82
  }
86
83
 
87
- const headerTitleMap = {
88
- warn: 'Console Warning',
89
- error: 'Console Error',
90
- fatal: 'Uncaught Error',
91
- syntax: 'Syntax Error',
92
- component: 'Render Error',
93
- };
94
-
95
- function LogBoxInspectorBody(props: {log: LogBoxLog, onRetry: () => void}) {
96
- const [collapsed, setCollapsed] = React.useState(true);
97
-
98
- React.useEffect(() => {
99
- setCollapsed(true);
100
- }, [props.log]);
101
-
102
- const headerTitle =
103
- props.log.type ??
104
- headerTitleMap[props.log.isComponentError ? 'component' : props.log.level];
105
-
106
- if (collapsed) {
107
- return (
108
- <>
109
- <LogBoxInspectorMessageHeader
110
- collapsed={collapsed}
111
- onPress={() => setCollapsed(!collapsed)}
112
- message={props.log.message}
113
- level={props.log.level}
114
- title={headerTitle}
115
- />
116
- <ScrollView style={styles.scrollBody}>
117
- <LogBoxInspectorCodeFrame codeFrame={props.log.codeFrame} />
118
- <LogBoxInspectorReactFrames log={props.log} />
119
- <LogBoxInspectorStackFrames log={props.log} onRetry={props.onRetry} />
120
- </ScrollView>
121
- </>
122
- );
123
- }
124
- return (
125
- <ScrollView style={styles.scrollBody}>
126
- <LogBoxInspectorMessageHeader
127
- collapsed={collapsed}
128
- onPress={() => setCollapsed(!collapsed)}
129
- message={props.log.message}
130
- level={props.log.level}
131
- title={headerTitle}
132
- />
133
- <LogBoxInspectorCodeFrame codeFrame={props.log.codeFrame} />
134
- <LogBoxInspectorReactFrames log={props.log} />
135
- <LogBoxInspectorStackFrames log={props.log} onRetry={props.onRetry} />
136
- </ScrollView>
137
- );
138
- }
139
-
140
84
  const styles = StyleSheet.create({
141
85
  root: {
142
86
  flex: 1,
143
87
  backgroundColor: LogBoxStyle.getTextColor(),
144
88
  },
145
- scrollBody: {
146
- backgroundColor: LogBoxStyle.getBackgroundColor(0.9),
147
- flex: 1,
148
- },
149
89
  });
150
-
151
- export default LogBoxInspector;
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ import ScrollView from '../../Components/ScrollView/ScrollView';
12
+ import StyleSheet from '../../StyleSheet/StyleSheet';
13
+ import LogBoxLog from '../Data/LogBoxLog';
14
+ import LogBoxInspectorCodeFrame from './LogBoxInspectorCodeFrame';
15
+ import LogBoxInspectorMessageHeader from './LogBoxInspectorMessageHeader';
16
+ import LogBoxInspectorReactFrames from './LogBoxInspectorReactFrames';
17
+ import LogBoxInspectorStackFrames from './LogBoxInspectorStackFrames';
18
+ import * as LogBoxStyle from './LogBoxStyle';
19
+ import * as React from 'react';
20
+ import {useEffect, useState} from 'react';
21
+
22
+ const headerTitleMap = {
23
+ warn: 'Console Warning',
24
+ error: 'Console Error',
25
+ fatal: 'Uncaught Error',
26
+ syntax: 'Syntax Error',
27
+ component: 'Render Error',
28
+ };
29
+
30
+ export default function LogBoxInspectorBody(props: {
31
+ log: LogBoxLog,
32
+ onRetry: () => void,
33
+ }): React.Node {
34
+ const [collapsed, setCollapsed] = useState(true);
35
+
36
+ useEffect(() => {
37
+ setCollapsed(true);
38
+ }, [props.log]);
39
+
40
+ const headerTitle =
41
+ props.log.type ??
42
+ headerTitleMap[props.log.isComponentError ? 'component' : props.log.level];
43
+
44
+ if (collapsed) {
45
+ return (
46
+ <>
47
+ <LogBoxInspectorMessageHeader
48
+ collapsed={collapsed}
49
+ onPress={() => setCollapsed(!collapsed)}
50
+ message={props.log.message}
51
+ level={props.log.level}
52
+ title={headerTitle}
53
+ />
54
+ <ScrollView style={styles.scrollBody}>
55
+ <LogBoxInspectorCodeFrame codeFrame={props.log.codeFrame} />
56
+ <LogBoxInspectorReactFrames log={props.log} />
57
+ <LogBoxInspectorStackFrames log={props.log} onRetry={props.onRetry} />
58
+ </ScrollView>
59
+ </>
60
+ );
61
+ }
62
+ return (
63
+ <ScrollView style={styles.scrollBody}>
64
+ <LogBoxInspectorMessageHeader
65
+ collapsed={collapsed}
66
+ onPress={() => setCollapsed(!collapsed)}
67
+ message={props.log.message}
68
+ level={props.log.level}
69
+ title={headerTitle}
70
+ />
71
+ <LogBoxInspectorCodeFrame codeFrame={props.log.codeFrame} />
72
+ <LogBoxInspectorReactFrames log={props.log} />
73
+ <LogBoxInspectorStackFrames log={props.log} onRetry={props.onRetry} />
74
+ </ScrollView>
75
+ );
76
+ }
77
+
78
+ const styles = StyleSheet.create({
79
+ root: {
80
+ flex: 1,
81
+ backgroundColor: LogBoxStyle.getTextColor(),
82
+ },
83
+ scrollBody: {
84
+ backgroundColor: LogBoxStyle.getBackgroundColor(0.9),
85
+ flex: 1,
86
+ },
87
+ });
@@ -10,21 +10,20 @@
10
10
 
11
11
  import type {LogLevel} from '../Data/LogBoxLog';
12
12
 
13
- import SafeAreaView from '../../Components/SafeAreaView/SafeAreaView';
14
13
  import View from '../../Components/View/View';
15
14
  import StyleSheet from '../../StyleSheet/StyleSheet';
16
15
  import Text from '../../Text/Text';
17
- import LogBoxButton from './LogBoxButton';
16
+ import LogBoxInspectorFooterButton from './LogBoxInspectorFooterButton';
18
17
  import * as LogBoxStyle from './LogBoxStyle';
19
18
  import * as React from 'react';
20
19
 
21
- type Props = $ReadOnly<{|
20
+ type Props = $ReadOnly<{
22
21
  onDismiss: () => void,
23
22
  onMinimize: () => void,
24
23
  level?: ?LogLevel,
25
- |}>;
24
+ }>;
26
25
 
27
- function LogBoxInspectorFooter(props: Props): React.Node {
26
+ export default function LogBoxInspectorFooter(props: Props): React.Node {
28
27
  if (props.level === 'syntax') {
29
28
  return (
30
29
  <View style={styles.root}>
@@ -39,34 +38,12 @@ function LogBoxInspectorFooter(props: Props): React.Node {
39
38
 
40
39
  return (
41
40
  <View style={styles.root}>
42
- <FooterButton text="Dismiss" onPress={props.onDismiss} />
43
- <FooterButton text="Minimize" onPress={props.onMinimize} />
41
+ <LogBoxInspectorFooterButton text="Dismiss" onPress={props.onDismiss} />
42
+ <LogBoxInspectorFooterButton text="Minimize" onPress={props.onMinimize} />
44
43
  </View>
45
44
  );
46
45
  }
47
46
 
48
- type ButtonProps = $ReadOnly<{|
49
- onPress: () => void,
50
- text: string,
51
- |}>;
52
-
53
- function FooterButton(props: ButtonProps): React.Node {
54
- return (
55
- <SafeAreaView style={styles.button}>
56
- <LogBoxButton
57
- backgroundColor={{
58
- default: 'transparent',
59
- pressed: LogBoxStyle.getBackgroundDarkColor(),
60
- }}
61
- onPress={props.onPress}>
62
- <View style={styles.buttonContent}>
63
- <Text style={styles.buttonLabel}>{props.text}</Text>
64
- </View>
65
- </LogBoxButton>
66
- </SafeAreaView>
67
- );
68
- }
69
-
70
47
  const styles = StyleSheet.create({
71
48
  root: {
72
49
  backgroundColor: LogBoxStyle.getBackgroundColor(1),
@@ -79,17 +56,6 @@ const styles = StyleSheet.create({
79
56
  button: {
80
57
  flex: 1,
81
58
  },
82
- buttonContent: {
83
- alignItems: 'center',
84
- height: 48,
85
- justifyContent: 'center',
86
- },
87
- buttonLabel: {
88
- color: LogBoxStyle.getTextColor(1),
89
- fontSize: 14,
90
- includeFontPadding: false,
91
- lineHeight: 20,
92
- },
93
59
  syntaxErrorText: {
94
60
  textAlign: 'center',
95
61
  width: '100%',
@@ -102,5 +68,3 @@ const styles = StyleSheet.create({
102
68
  color: LogBoxStyle.getTextColor(0.6),
103
69
  },
104
70
  });
105
-
106
- export default LogBoxInspectorFooter;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ import SafeAreaView from '../../Components/SafeAreaView/SafeAreaView';
12
+ import View from '../../Components/View/View';
13
+ import StyleSheet from '../../StyleSheet/StyleSheet';
14
+ import Text from '../../Text/Text';
15
+ import LogBoxButton from './LogBoxButton';
16
+ import * as LogBoxStyle from './LogBoxStyle';
17
+ import * as React from 'react';
18
+
19
+ type ButtonProps = $ReadOnly<{
20
+ onPress: () => void,
21
+ text: string,
22
+ }>;
23
+
24
+ export default function LogBoxInspectorFooterButton(
25
+ props: ButtonProps,
26
+ ): React.Node {
27
+ return (
28
+ <SafeAreaView style={styles.button}>
29
+ <LogBoxButton
30
+ backgroundColor={{
31
+ default: 'transparent',
32
+ pressed: LogBoxStyle.getBackgroundDarkColor(),
33
+ }}
34
+ onPress={props.onPress}>
35
+ <View style={styles.buttonContent}>
36
+ <Text style={styles.buttonLabel}>{props.text}</Text>
37
+ </View>
38
+ </LogBoxButton>
39
+ </SafeAreaView>
40
+ );
41
+ }
42
+
43
+ const styles = StyleSheet.create({
44
+ button: {
45
+ flex: 1,
46
+ },
47
+ buttonContent: {
48
+ alignItems: 'center',
49
+ height: 48,
50
+ justifyContent: 'center',
51
+ },
52
+ buttonLabel: {
53
+ color: LogBoxStyle.getTextColor(1),
54
+ fontSize: 14,
55
+ includeFontPadding: false,
56
+ lineHeight: 20,
57
+ },
58
+ });
@@ -8,26 +8,25 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {ImageSource} from '../../Image/ImageSource';
12
11
  import type {LogLevel} from '../Data/LogBoxLog';
13
12
 
14
13
  import StatusBar from '../../Components/StatusBar/StatusBar';
15
14
  import View from '../../Components/View/View';
16
- import Image from '../../Image/Image';
17
15
  import StyleSheet from '../../StyleSheet/StyleSheet';
18
16
  import Text from '../../Text/Text';
19
17
  import Platform from '../../Utilities/Platform';
20
- import LogBoxButton from './LogBoxButton';
18
+ import LogBoxInspectorHeaderButton from './LogBoxInspectorHeaderButton';
21
19
  import * as LogBoxStyle from './LogBoxStyle';
22
20
  import * as React from 'react';
23
- type Props = $ReadOnly<{|
21
+
22
+ type Props = $ReadOnly<{
24
23
  onSelectIndex: (selectedIndex: number) => void,
25
24
  selectedIndex: number,
26
25
  total: number,
27
26
  level: LogLevel,
28
- |}>;
27
+ }>;
29
28
 
30
- function LogBoxInspectorHeader(props: Props): React.Node {
29
+ export default function LogBoxInspectorHeader(props: Props): React.Node {
31
30
  if (props.level === 'syntax') {
32
31
  return (
33
32
  <View style={[styles.safeArea, styles[props.level]]}>
@@ -70,64 +69,6 @@ function LogBoxInspectorHeader(props: Props): React.Node {
70
69
  );
71
70
  }
72
71
 
73
- const backgroundForLevel = (level: LogLevel) =>
74
- ({
75
- warn: {
76
- default: 'transparent',
77
- pressed: LogBoxStyle.getWarningDarkColor(),
78
- },
79
- error: {
80
- default: 'transparent',
81
- pressed: LogBoxStyle.getErrorDarkColor(),
82
- },
83
- fatal: {
84
- default: 'transparent',
85
- pressed: LogBoxStyle.getFatalDarkColor(),
86
- },
87
- syntax: {
88
- default: 'transparent',
89
- pressed: LogBoxStyle.getFatalDarkColor(),
90
- },
91
- })[level];
92
-
93
- function LogBoxInspectorHeaderButton(
94
- props: $ReadOnly<{|
95
- disabled: boolean,
96
- image: ImageSource,
97
- level: LogLevel,
98
- onPress?: ?() => void,
99
- |}>,
100
- ): React.Node {
101
- return (
102
- <LogBoxButton
103
- backgroundColor={backgroundForLevel(props.level)}
104
- onPress={props.disabled ? null : props.onPress}
105
- style={headerStyles.button}>
106
- {props.disabled ? null : (
107
- <Image source={props.image} style={headerStyles.buttonImage} />
108
- )}
109
- </LogBoxButton>
110
- );
111
- }
112
-
113
- const headerStyles = StyleSheet.create({
114
- button: {
115
- alignItems: 'center',
116
- aspectRatio: 1,
117
- justifyContent: 'center',
118
- marginTop: 5,
119
- marginRight: 6,
120
- marginLeft: 6,
121
- marginBottom: -8,
122
- borderRadius: 3,
123
- },
124
- buttonImage: {
125
- height: 14,
126
- width: 8,
127
- tintColor: LogBoxStyle.getTextColor(),
128
- },
129
- });
130
-
131
72
  const styles = StyleSheet.create({
132
73
  syntax: {
133
74
  backgroundColor: LogBoxStyle.getFatalColor(),
@@ -164,5 +105,3 @@ const styles = StyleSheet.create({
164
105
  paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 40,
165
106
  },
166
107
  });
167
-
168
- export default LogBoxInspectorHeader;
@@ -8,26 +8,25 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {ImageSource} from '../../Image/ImageSource';
12
11
  import type {LogLevel} from '../Data/LogBoxLog';
13
12
 
14
13
  import StatusBar from '../../Components/StatusBar/StatusBar';
15
14
  import View from '../../Components/View/View';
16
- import Image from '../../Image/Image';
17
15
  import StyleSheet from '../../StyleSheet/StyleSheet';
18
16
  import Text from '../../Text/Text';
19
17
  import Platform from '../../Utilities/Platform';
20
- import LogBoxButton from './LogBoxButton';
18
+ import LogBoxInspectorHeaderButton from './LogBoxInspectorHeaderButton';
21
19
  import * as LogBoxStyle from './LogBoxStyle';
22
20
  import * as React from 'react';
23
- type Props = $ReadOnly<{|
21
+
22
+ type Props = $ReadOnly<{
24
23
  onSelectIndex: (selectedIndex: number) => void,
25
24
  selectedIndex: number,
26
25
  total: number,
27
26
  level: LogLevel,
28
- |}>;
27
+ }>;
29
28
 
30
- function LogBoxInspectorHeader(props: Props): React.Node {
29
+ export default function LogBoxInspectorHeader(props: Props): React.Node {
31
30
  if (props.level === 'syntax') {
32
31
  return (
33
32
  <View style={[styles.safeArea, styles[props.level]]}>
@@ -70,64 +69,6 @@ function LogBoxInspectorHeader(props: Props): React.Node {
70
69
  );
71
70
  }
72
71
 
73
- const backgroundForLevel = (level: LogLevel) =>
74
- ({
75
- warn: {
76
- default: 'transparent',
77
- pressed: LogBoxStyle.getWarningDarkColor(),
78
- },
79
- error: {
80
- default: 'transparent',
81
- pressed: LogBoxStyle.getErrorDarkColor(),
82
- },
83
- fatal: {
84
- default: 'transparent',
85
- pressed: LogBoxStyle.getFatalDarkColor(),
86
- },
87
- syntax: {
88
- default: 'transparent',
89
- pressed: LogBoxStyle.getFatalDarkColor(),
90
- },
91
- }[level]);
92
-
93
- function LogBoxInspectorHeaderButton(
94
- props: $ReadOnly<{|
95
- disabled: boolean,
96
- image: ImageSource,
97
- level: LogLevel,
98
- onPress?: ?() => void,
99
- |}>,
100
- ): React.Node {
101
- return (
102
- <LogBoxButton
103
- backgroundColor={backgroundForLevel(props.level)}
104
- onPress={props.disabled ? null : props.onPress}
105
- style={headerStyles.button}>
106
- {props.disabled ? null : (
107
- <Image source={props.image} style={headerStyles.buttonImage} />
108
- )}
109
- </LogBoxButton>
110
- );
111
- }
112
-
113
- const headerStyles = StyleSheet.create({
114
- button: {
115
- alignItems: 'center',
116
- aspectRatio: 1,
117
- justifyContent: 'center',
118
- marginTop: 5,
119
- marginRight: 6,
120
- marginLeft: 6,
121
- marginBottom: -8,
122
- borderRadius: 3,
123
- },
124
- buttonImage: {
125
- height: 14,
126
- width: 8,
127
- tintColor: LogBoxStyle.getTextColor(),
128
- },
129
- });
130
-
131
72
  const styles = StyleSheet.create({
132
73
  syntax: {
133
74
  backgroundColor: LogBoxStyle.getFatalColor(),
@@ -168,5 +109,3 @@ const styles = StyleSheet.create({
168
109
  paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 40,
169
110
  },
170
111
  });
171
-
172
- export default LogBoxInspectorHeader;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ import type {ImageSource} from '../../Image/ImageSource';
12
+ import type {LogLevel} from '../Data/LogBoxLog';
13
+
14
+ import Image from '../../Image/Image';
15
+ import StyleSheet from '../../StyleSheet/StyleSheet';
16
+ import LogBoxButton from './LogBoxButton';
17
+ import * as LogBoxStyle from './LogBoxStyle';
18
+ import * as React from 'react';
19
+
20
+ const backgroundForLevel = (level: LogLevel) =>
21
+ ({
22
+ warn: {
23
+ default: 'transparent',
24
+ pressed: LogBoxStyle.getWarningDarkColor(),
25
+ },
26
+ error: {
27
+ default: 'transparent',
28
+ pressed: LogBoxStyle.getErrorDarkColor(),
29
+ },
30
+ fatal: {
31
+ default: 'transparent',
32
+ pressed: LogBoxStyle.getFatalDarkColor(),
33
+ },
34
+ syntax: {
35
+ default: 'transparent',
36
+ pressed: LogBoxStyle.getFatalDarkColor(),
37
+ },
38
+ })[level];
39
+
40
+ export default function LogBoxInspectorHeaderButton(
41
+ props: $ReadOnly<{
42
+ disabled: boolean,
43
+ image: ImageSource,
44
+ level: LogLevel,
45
+ onPress?: ?() => void,
46
+ }>,
47
+ ): React.Node {
48
+ return (
49
+ <LogBoxButton
50
+ backgroundColor={backgroundForLevel(props.level)}
51
+ onPress={props.disabled ? null : props.onPress}
52
+ style={styles.button}>
53
+ {props.disabled ? null : (
54
+ <Image source={props.image} style={styles.buttonImage} />
55
+ )}
56
+ </LogBoxButton>
57
+ );
58
+ }
59
+
60
+ const styles = StyleSheet.create({
61
+ button: {
62
+ alignItems: 'center',
63
+ aspectRatio: 1,
64
+ justifyContent: 'center',
65
+ marginTop: 5,
66
+ marginRight: 6,
67
+ marginLeft: 6,
68
+ marginBottom: -8,
69
+ borderRadius: 3,
70
+ },
71
+ buttonImage: {
72
+ height: 14,
73
+ width: 8,
74
+ tintColor: LogBoxStyle.getTextColor(),
75
+ },
76
+ });
@@ -50,24 +50,27 @@ function getPrettyFileName(path: string) {
50
50
  }
51
51
  function LogBoxInspectorReactFrames(props: Props): React.Node {
52
52
  const [collapsed, setCollapsed] = React.useState(true);
53
- if (props.log.componentStack == null || props.log.componentStack.length < 1) {
53
+ if (
54
+ props.log.getAvailableComponentStack() == null ||
55
+ props.log.getAvailableComponentStack().length < 1
56
+ ) {
54
57
  return null;
55
58
  }
56
59
 
57
60
  function getStackList() {
58
61
  if (collapsed) {
59
- return props.log.componentStack.slice(0, 3);
62
+ return props.log.getAvailableComponentStack().slice(0, 3);
60
63
  } else {
61
- return props.log.componentStack;
64
+ return props.log.getAvailableComponentStack();
62
65
  }
63
66
  }
64
67
 
65
68
  function getCollapseMessage() {
66
- if (props.log.componentStack.length <= 3) {
69
+ if (props.log.getAvailableComponentStack().length <= 3) {
67
70
  return;
68
71
  }
69
72
 
70
- const count = props.log.componentStack.length - 3;
73
+ const count = props.log.getAvailableComponentStack().length - 3;
71
74
  if (collapsed) {
72
75
  return `See ${count} more components`;
73
76
  } else {