react-native-inapp-inspector 2.3.19 → 2.3.21

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 (353) hide show
  1. package/README.md +14 -14
  2. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +67 -0
  3. package/dist/commonjs/analytics.js +1 -24
  4. package/dist/commonjs/bundle.js +1 -16
  5. package/dist/commonjs/capture.js +1 -35
  6. package/dist/commonjs/components/AnalyticsDetail.js +92 -623
  7. package/dist/commonjs/components/AnalyticsEventCard.js +54 -350
  8. package/dist/commonjs/components/AnalyticsGraph.js +70 -370
  9. package/dist/commonjs/components/AnimatedEntrance.js +1 -11
  10. package/dist/commonjs/components/AppHeaderLogo.js +7 -134
  11. package/dist/commonjs/components/BrandCircleIcon.js +73 -118
  12. package/dist/commonjs/components/BrandSquareIcon.js +63 -108
  13. package/dist/commonjs/components/CodeSnippet.js +48 -623
  14. package/dist/commonjs/components/ConsoleLogCard.js +63 -537
  15. package/dist/commonjs/components/CopyButton.js +3 -89
  16. package/dist/commonjs/components/DiffViewer.js +19 -83
  17. package/dist/commonjs/components/DomainHeader.js +27 -127
  18. package/dist/commonjs/components/EmptyState.js +10 -87
  19. package/dist/commonjs/components/EndOfListFooter.js +7 -81
  20. package/dist/commonjs/components/ErrorBoundary.js +72 -566
  21. package/dist/commonjs/components/HeadersSection.js +31 -110
  22. package/dist/commonjs/components/HighlightText.js +17 -58
  23. package/dist/commonjs/components/Inspector/AboutModal.d.ts +6 -0
  24. package/dist/commonjs/components/Inspector/AboutModal.js +243 -0
  25. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +98 -797
  26. package/dist/commonjs/components/Inspector/AnalyticsTab.js +284 -930
  27. package/dist/commonjs/components/Inspector/BundleTab.js +551 -2918
  28. package/dist/commonjs/components/Inspector/ConsoleTab.js +79 -492
  29. package/dist/commonjs/components/Inspector/CrashDetail.js +123 -672
  30. package/dist/commonjs/components/Inspector/CrashFilterModal.js +66 -498
  31. package/dist/commonjs/components/Inspector/CrashTab.js +98 -670
  32. package/dist/commonjs/components/Inspector/DebuggingTab.js +74 -875
  33. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +143 -907
  34. package/dist/commonjs/components/Inspector/FabLauncher.js +42 -466
  35. package/dist/commonjs/components/Inspector/FeatureUnderDevNotice.js +6 -99
  36. package/dist/commonjs/components/Inspector/InspectorContext.js +1 -21
  37. package/dist/commonjs/components/Inspector/InspectorHeader.js +191 -1110
  38. package/dist/commonjs/components/Inspector/LogDetail.js +168 -994
  39. package/dist/commonjs/components/Inspector/MainScreen.js +52 -335
  40. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +97 -644
  41. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +90 -605
  42. package/dist/commonjs/components/Inspector/NavigationTracker.js +1 -12
  43. package/dist/commonjs/components/Inspector/NetworkDetail.js +89 -411
  44. package/dist/commonjs/components/Inspector/NetworkFilterModal.js +60 -576
  45. package/dist/commonjs/components/Inspector/NetworkTab.js +84 -514
  46. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +18 -434
  47. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +25 -298
  48. package/dist/commonjs/components/Inspector/PerformanceTab.js +182 -1397
  49. package/dist/commonjs/components/Inspector/ReduxDetail.js +188 -1089
  50. package/dist/commonjs/components/Inspector/ReduxTab.js +85 -701
  51. package/dist/commonjs/components/Inspector/SettingsPanel.js +427 -3807
  52. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +11 -180
  53. package/dist/commonjs/components/Inspector/StorageTab.js +93 -826
  54. package/dist/commonjs/components/Inspector/TabBar.js +36 -334
  55. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +37 -412
  56. package/dist/commonjs/components/JsonViewer.js +168 -381
  57. package/dist/commonjs/components/LogCard.js +57 -567
  58. package/dist/commonjs/components/LogSyntaxHighlighter.js +11 -130
  59. package/dist/commonjs/components/MetaAccordion.js +69 -238
  60. package/dist/commonjs/components/MiniBarChart.js +3 -56
  61. package/dist/commonjs/components/MiniLineChart.js +3 -58
  62. package/dist/commonjs/components/NetworkIcons.d.ts +13 -0
  63. package/dist/commonjs/components/NetworkIcons.js +521 -1022
  64. package/dist/commonjs/components/QRCodeView.js +5 -79
  65. package/dist/commonjs/components/SectionHeader.js +15 -37
  66. package/dist/commonjs/components/SegmentedTabs.js +7 -62
  67. package/dist/commonjs/components/SkeletonPlaceholder.js +11 -180
  68. package/dist/commonjs/components/Slider.js +15 -243
  69. package/dist/commonjs/components/SourcePageCard.js +30 -89
  70. package/dist/commonjs/components/Toast.js +5 -147
  71. package/dist/commonjs/components/TouchableScale.js +3 -24
  72. package/dist/commonjs/components/TreeNode.js +55 -130
  73. package/dist/commonjs/console.js +1 -16
  74. package/dist/commonjs/constants/index.js +1 -32
  75. package/dist/commonjs/constants/telemetryConfig.js +1 -6
  76. package/dist/commonjs/constants/version.d.ts +1 -1
  77. package/dist/commonjs/constants/version.js +1 -4
  78. package/dist/commonjs/crash.js +1 -23
  79. package/dist/commonjs/customHooks/analyticsLogger.js +1 -250
  80. package/dist/commonjs/customHooks/bundleAnalyzer.js +1 -957
  81. package/dist/commonjs/customHooks/consoleLogger.js +6 -445
  82. package/dist/commonjs/customHooks/crashHandler.js +7 -656
  83. package/dist/commonjs/customHooks/logFilters.js +1 -23
  84. package/dist/commonjs/customHooks/networkLogger.js +2 -536
  85. package/dist/commonjs/customHooks/performanceTracker.js +63 -750
  86. package/dist/commonjs/customHooks/reduxLogger.js +2 -313
  87. package/dist/commonjs/customHooks/storageInspector.js +1 -435
  88. package/dist/commonjs/customHooks/useAccordion.js +1 -18
  89. package/dist/commonjs/decorators/index.js +1 -100
  90. package/dist/commonjs/helpers/gaAnalyticsRegistry.js +1 -148
  91. package/dist/commonjs/helpers/index.d.ts +1 -0
  92. package/dist/commonjs/helpers/index.js +8 -921
  93. package/dist/commonjs/helpers/memoryManager.js +1 -99
  94. package/dist/commonjs/helpers/qrGenerator.js +1 -367
  95. package/dist/commonjs/helpers/remoteConfig.js +1 -165
  96. package/dist/commonjs/helpers/searchQueryParser.js +1 -62
  97. package/dist/commonjs/helpers/settingsStore.js +1 -144
  98. package/dist/commonjs/helpers/telemetry.js +1 -501
  99. package/dist/commonjs/helpers/toast.js +1 -20
  100. package/dist/commonjs/i18n/index.js +1 -90
  101. package/dist/commonjs/i18n/locales/en.json +1 -1140
  102. package/dist/commonjs/index.js +5 -2168
  103. package/dist/commonjs/metro.js +6 -468
  104. package/dist/commonjs/native/NativeInspector.d.ts +1 -0
  105. package/dist/commonjs/native/NativeInspector.js +1 -415
  106. package/dist/commonjs/native/NativeNetworkInspector.js +1 -4
  107. package/dist/commonjs/network.js +1 -13
  108. package/dist/commonjs/performance.js +1 -29
  109. package/dist/commonjs/redux.js +1 -20
  110. package/dist/commonjs/storage.js +1 -14
  111. package/dist/commonjs/styles/AppColors.js +1 -423
  112. package/dist/commonjs/styles/AppFonts.js +1 -17
  113. package/dist/commonjs/styles/common.js +1 -190
  114. package/dist/commonjs/styles/index.d.ts +6 -0
  115. package/dist/commonjs/styles/index.js +1 -1589
  116. package/dist/commonjs/types/enums.d.ts +0 -1
  117. package/dist/commonjs/types/enums.js +1 -152
  118. package/dist/commonjs/types/index.js +1 -18
  119. package/dist/commonjs/types/interfaces.d.ts +2 -2
  120. package/dist/commonjs/types/interfaces.js +1 -2
  121. package/dist/esm/analytics.js +1 -2
  122. package/dist/esm/bundle.js +1 -2
  123. package/dist/esm/capture.js +1 -32
  124. package/dist/esm/components/AnalyticsDetail.js +171 -664
  125. package/dist/esm/components/AnalyticsEventCard.js +77 -335
  126. package/dist/esm/components/AnalyticsGraph.js +95 -357
  127. package/dist/esm/components/AnimatedEntrance.js +1 -6
  128. package/dist/esm/components/AppHeaderLogo.js +7 -94
  129. package/dist/esm/components/BrandCircleIcon.js +114 -119
  130. package/dist/esm/components/BrandSquareIcon.js +73 -78
  131. package/dist/esm/components/CodeSnippet.js +58 -595
  132. package/dist/esm/components/ConsoleLogCard.js +91 -526
  133. package/dist/esm/components/CopyButton.js +3 -51
  134. package/dist/esm/components/DiffViewer.js +22 -48
  135. package/dist/esm/components/DomainHeader.js +43 -138
  136. package/dist/esm/components/EmptyState.js +17 -56
  137. package/dist/esm/components/EndOfListFooter.js +15 -83
  138. package/dist/esm/components/ErrorBoundary.js +125 -582
  139. package/dist/esm/components/HeadersSection.js +52 -93
  140. package/dist/esm/components/HighlightText.js +17 -53
  141. package/dist/esm/components/Inspector/AboutModal.d.ts +6 -0
  142. package/dist/esm/components/Inspector/AboutModal.js +243 -0
  143. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +225 -886
  144. package/dist/esm/components/Inspector/AnalyticsTab.js +296 -904
  145. package/dist/esm/components/Inspector/BundleTab.js +1175 -3502
  146. package/dist/esm/components/Inspector/ConsoleTab.js +113 -488
  147. package/dist/esm/components/Inspector/CrashDetail.js +236 -747
  148. package/dist/esm/components/Inspector/CrashFilterModal.js +149 -541
  149. package/dist/esm/components/Inspector/CrashTab.js +177 -711
  150. package/dist/esm/components/Inspector/DebuggingTab.js +164 -925
  151. package/dist/esm/components/Inspector/DeviceInfoTab.js +199 -924
  152. package/dist/esm/components/Inspector/FabLauncher.js +68 -454
  153. package/dist/esm/components/Inspector/FeatureUnderDevNotice.js +14 -70
  154. package/dist/esm/components/Inspector/InspectorContext.js +1 -12
  155. package/dist/esm/components/Inspector/InspectorHeader.js +282 -1163
  156. package/dist/esm/components/Inspector/LogDetail.js +235 -1023
  157. package/dist/esm/components/Inspector/MainScreen.js +78 -323
  158. package/dist/esm/components/Inspector/MediaGalleryTab.js +143 -650
  159. package/dist/esm/components/Inspector/MediaPreviewModal.js +138 -613
  160. package/dist/esm/components/Inspector/NavigationTracker.js +1 -10
  161. package/dist/esm/components/Inspector/NetworkDetail.js +138 -455
  162. package/dist/esm/components/Inspector/NetworkFilterModal.js +122 -597
  163. package/dist/esm/components/Inspector/NetworkTab.js +125 -517
  164. package/dist/esm/components/Inspector/NpmStarPrompt.js +58 -434
  165. package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -281
  166. package/dist/esm/components/Inspector/PerformanceTab.js +393 -1570
  167. package/dist/esm/components/Inspector/ReduxDetail.js +307 -1170
  168. package/dist/esm/components/Inspector/ReduxTab.js +144 -722
  169. package/dist/esm/components/Inspector/SettingsPanel.js +643 -3985
  170. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +30 -163
  171. package/dist/esm/components/Inspector/StorageTab.js +172 -866
  172. package/dist/esm/components/Inspector/TabBar.js +45 -305
  173. package/dist/esm/components/Inspector/UpdateAvailableModal.js +80 -418
  174. package/dist/esm/components/JsonViewer.js +179 -354
  175. package/dist/esm/components/LogCard.js +93 -565
  176. package/dist/esm/components/LogSyntaxHighlighter.js +11 -123
  177. package/dist/esm/components/MetaAccordion.js +136 -267
  178. package/dist/esm/components/MiniBarChart.js +3 -18
  179. package/dist/esm/components/MiniLineChart.js +3 -20
  180. package/dist/esm/components/NetworkIcons.d.ts +13 -0
  181. package/dist/esm/components/NetworkIcons.js +523 -838
  182. package/dist/esm/components/QRCodeView.js +8 -45
  183. package/dist/esm/components/SectionHeader.js +22 -39
  184. package/dist/esm/components/SegmentedTabs.js +8 -58
  185. package/dist/esm/components/SkeletonPlaceholder.js +30 -163
  186. package/dist/esm/components/Slider.js +24 -213
  187. package/dist/esm/components/SourcePageCard.js +65 -86
  188. package/dist/esm/components/Toast.js +10 -117
  189. package/dist/esm/components/TouchableScale.js +3 -19
  190. package/dist/esm/components/TreeNode.js +58 -95
  191. package/dist/esm/console.js +1 -2
  192. package/dist/esm/constants/index.js +1 -28
  193. package/dist/esm/constants/telemetryConfig.js +1 -3
  194. package/dist/esm/constants/version.d.ts +1 -1
  195. package/dist/esm/constants/version.js +1 -1
  196. package/dist/esm/crash.js +1 -2
  197. package/dist/esm/customHooks/analyticsLogger.js +1 -230
  198. package/dist/esm/customHooks/bundleAnalyzer.js +1 -944
  199. package/dist/esm/customHooks/consoleLogger.js +6 -432
  200. package/dist/esm/customHooks/crashHandler.js +7 -630
  201. package/dist/esm/customHooks/logFilters.js +1 -20
  202. package/dist/esm/customHooks/networkLogger.js +2 -519
  203. package/dist/esm/customHooks/performanceTracker.js +63 -723
  204. package/dist/esm/customHooks/reduxLogger.js +2 -293
  205. package/dist/esm/customHooks/storageInspector.js +1 -418
  206. package/dist/esm/customHooks/useAccordion.js +1 -16
  207. package/dist/esm/decorators/index.js +1 -95
  208. package/dist/esm/helpers/gaAnalyticsRegistry.js +1 -143
  209. package/dist/esm/helpers/index.d.ts +1 -0
  210. package/dist/esm/helpers/index.js +8 -861
  211. package/dist/esm/helpers/memoryManager.js +1 -91
  212. package/dist/esm/helpers/qrGenerator.js +1 -364
  213. package/dist/esm/helpers/remoteConfig.js +1 -160
  214. package/dist/esm/helpers/searchQueryParser.js +1 -59
  215. package/dist/esm/helpers/settingsStore.js +1 -134
  216. package/dist/esm/helpers/telemetry.js +1 -489
  217. package/dist/esm/helpers/toast.js +1 -15
  218. package/dist/esm/i18n/index.js +1 -78
  219. package/dist/esm/i18n/locales/en.json +1 -1140
  220. package/dist/esm/index.js +7 -1982
  221. package/dist/esm/metro.js +6 -459
  222. package/dist/esm/native/NativeInspector.d.ts +1 -0
  223. package/dist/esm/native/NativeInspector.js +1 -382
  224. package/dist/esm/native/NativeNetworkInspector.js +1 -2
  225. package/dist/esm/network.js +1 -1
  226. package/dist/esm/performance.js +1 -2
  227. package/dist/esm/redux.js +1 -1
  228. package/dist/esm/storage.js +1 -1
  229. package/dist/esm/styles/AppColors.js +1 -417
  230. package/dist/esm/styles/AppFonts.js +1 -13
  231. package/dist/esm/styles/common.js +1 -186
  232. package/dist/esm/styles/index.d.ts +6 -0
  233. package/dist/esm/styles/index.js +1 -1551
  234. package/dist/esm/types/enums.d.ts +0 -1
  235. package/dist/esm/types/enums.js +1 -149
  236. package/dist/esm/types/index.js +1 -2
  237. package/dist/esm/types/interfaces.d.ts +2 -2
  238. package/dist/esm/types/interfaces.js +1 -1
  239. package/ios/NetworkInspectorModule.mm +60 -12
  240. package/package.json +5 -3
  241. package/src/native/NativeInspector.ts +18 -0
  242. package/dist/commonjs/components/Inspector/FeedbackModal.d.ts +0 -7
  243. package/dist/commonjs/components/Inspector/FeedbackModal.js +0 -552
  244. package/dist/esm/components/Inspector/FeedbackModal.d.ts +0 -7
  245. package/dist/esm/components/Inspector/FeedbackModal.js +0 -515
  246. package/src/analytics.ts +0 -35
  247. package/src/bundle.ts +0 -25
  248. package/src/capture.ts +0 -109
  249. package/src/components/AnalyticsDetail.tsx +0 -870
  250. package/src/components/AnalyticsEventCard.tsx +0 -444
  251. package/src/components/AnalyticsGraph.tsx +0 -583
  252. package/src/components/AnimatedEntrance.tsx +0 -20
  253. package/src/components/AppHeaderLogo.tsx +0 -143
  254. package/src/components/BrandCircleIcon.tsx +0 -144
  255. package/src/components/BrandSquareIcon.tsx +0 -184
  256. package/src/components/CodeSnippet.tsx +0 -725
  257. package/src/components/ConsoleLogCard.tsx +0 -679
  258. package/src/components/CopyButton.tsx +0 -87
  259. package/src/components/DiffViewer.tsx +0 -82
  260. package/src/components/DomainHeader.tsx +0 -224
  261. package/src/components/EmptyState.tsx +0 -97
  262. package/src/components/EndOfListFooter.tsx +0 -100
  263. package/src/components/ErrorBoundary.tsx +0 -688
  264. package/src/components/HeadersSection.tsx +0 -172
  265. package/src/components/HighlightText.tsx +0 -100
  266. package/src/components/Inspector/AnalyticsFilterModal.tsx +0 -1250
  267. package/src/components/Inspector/AnalyticsTab.tsx +0 -1362
  268. package/src/components/Inspector/BundleTab.tsx +0 -4768
  269. package/src/components/Inspector/ConsoleTab.tsx +0 -726
  270. package/src/components/Inspector/CrashDetail.tsx +0 -997
  271. package/src/components/Inspector/CrashFilterModal.tsx +0 -721
  272. package/src/components/Inspector/CrashTab.tsx +0 -933
  273. package/src/components/Inspector/DebuggingTab.tsx +0 -1103
  274. package/src/components/Inspector/DeviceInfoTab.tsx +0 -1397
  275. package/src/components/Inspector/FabLauncher.tsx +0 -590
  276. package/src/components/Inspector/FeatureUnderDevNotice.tsx +0 -94
  277. package/src/components/Inspector/FeedbackModal.tsx +0 -626
  278. package/src/components/Inspector/InspectorContext.tsx +0 -28
  279. package/src/components/Inspector/InspectorHeader.tsx +0 -1583
  280. package/src/components/Inspector/LogDetail.tsx +0 -1431
  281. package/src/components/Inspector/MainScreen.tsx +0 -460
  282. package/src/components/Inspector/MediaGalleryTab.tsx +0 -829
  283. package/src/components/Inspector/MediaPreviewModal.tsx +0 -783
  284. package/src/components/Inspector/NavigationTracker.tsx +0 -13
  285. package/src/components/Inspector/NetworkDetail.tsx +0 -778
  286. package/src/components/Inspector/NetworkFilterModal.tsx +0 -730
  287. package/src/components/Inspector/NetworkTab.tsx +0 -820
  288. package/src/components/Inspector/NpmStarPrompt.tsx +0 -532
  289. package/src/components/Inspector/NpmUpdateToast.tsx +0 -387
  290. package/src/components/Inspector/PerformanceTab.tsx +0 -1967
  291. package/src/components/Inspector/ReduxDetail.tsx +0 -1651
  292. package/src/components/Inspector/ReduxTab.tsx +0 -987
  293. package/src/components/Inspector/SettingsPanel.tsx +0 -5136
  294. package/src/components/Inspector/SkeletonPlaceholder.tsx +0 -206
  295. package/src/components/Inspector/StorageTab.tsx +0 -1159
  296. package/src/components/Inspector/TabBar.tsx +0 -431
  297. package/src/components/Inspector/UpdateAvailableModal.tsx +0 -555
  298. package/src/components/JsonViewer.tsx +0 -549
  299. package/src/components/LogCard.tsx +0 -694
  300. package/src/components/LogSyntaxHighlighter.tsx +0 -178
  301. package/src/components/MetaAccordion.tsx +0 -355
  302. package/src/components/MiniBarChart.tsx +0 -42
  303. package/src/components/MiniLineChart.tsx +0 -33
  304. package/src/components/NetworkIcons.tsx +0 -2655
  305. package/src/components/QRCodeView.tsx +0 -75
  306. package/src/components/SectionHeader.tsx +0 -101
  307. package/src/components/SegmentedTabs.tsx +0 -84
  308. package/src/components/SkeletonPlaceholder.tsx +0 -206
  309. package/src/components/Slider.tsx +0 -300
  310. package/src/components/SourcePageCard.tsx +0 -150
  311. package/src/components/Toast.tsx +0 -131
  312. package/src/components/TouchableScale.tsx +0 -61
  313. package/src/components/TreeNode.tsx +0 -171
  314. package/src/console.ts +0 -24
  315. package/src/constants/index.ts +0 -41
  316. package/src/constants/telemetryConfig.ts +0 -4
  317. package/src/constants/version.ts +0 -3
  318. package/src/crash.ts +0 -32
  319. package/src/customHooks/analyticsLogger.ts +0 -336
  320. package/src/customHooks/bundleAnalyzer.ts +0 -1256
  321. package/src/customHooks/consoleLogger.ts +0 -530
  322. package/src/customHooks/crashHandler.ts +0 -944
  323. package/src/customHooks/logFilters.ts +0 -32
  324. package/src/customHooks/networkLogger.ts +0 -624
  325. package/src/customHooks/performanceTracker.ts +0 -1014
  326. package/src/customHooks/reduxLogger.ts +0 -406
  327. package/src/customHooks/storageInspector.ts +0 -513
  328. package/src/customHooks/useAccordion.tsx +0 -27
  329. package/src/decorators/index.ts +0 -184
  330. package/src/helpers/gaAnalyticsRegistry.ts +0 -204
  331. package/src/helpers/index.ts +0 -1092
  332. package/src/helpers/memoryManager.ts +0 -138
  333. package/src/helpers/qrGenerator.ts +0 -430
  334. package/src/helpers/remoteConfig.ts +0 -212
  335. package/src/helpers/searchQueryParser.ts +0 -84
  336. package/src/helpers/settingsStore.ts +0 -171
  337. package/src/helpers/telemetry.ts +0 -568
  338. package/src/helpers/toast.ts +0 -17
  339. package/src/i18n/index.ts +0 -104
  340. package/src/i18n/locales/en.json +0 -1141
  341. package/src/index.tsx +0 -2650
  342. package/src/metro.ts +0 -598
  343. package/src/network.ts +0 -22
  344. package/src/performance.ts +0 -38
  345. package/src/redux.ts +0 -23
  346. package/src/storage.ts +0 -18
  347. package/src/styles/AppColors.ts +0 -455
  348. package/src/styles/AppFonts.ts +0 -26
  349. package/src/styles/common.ts +0 -209
  350. package/src/styles/index.ts +0 -1606
  351. package/src/types/enums.ts +0 -210
  352. package/src/types/index.ts +0 -34
  353. package/src/types/interfaces.ts +0 -535
@@ -1,596 +1,139 @@
1
- import React, { Component } from 'react';
2
- import { StyleSheet, Text, View, ScrollView, TouchableOpacity, SafeAreaView, } from 'react-native';
3
- import { AppColors } from '../styles/AppColors';
4
- import { AppFonts } from '../styles/AppFonts';
5
- import { copyToClipboard } from '../helpers';
6
- import { t } from '../i18n';
7
- import { WarningTriangleIcon, CopyIcon, RefreshCcwIcon, ClearIcon, CircleAlertIcon, } from './NetworkIcons';
8
- import { handleInterceptedCrash } from '../customHooks/crashHandler';
9
- import { CrashType } from '../types/enums';
10
- import { showNativeFloatingButton, setNativeFloatingButtonBadge, } from '../native/NativeInspector';
11
- function parseStackTrace(stack) {
12
- if (!stack)
13
- return { rootFrame: null, frames: [] };
14
- const lines = stack.split('\n');
15
- const frames = [];
16
- for (const line of lines) {
17
- if (line.includes('ErrorBoundary') ||
18
- line.includes('getDerivedStateFromError') ||
19
- line.includes('componentDidCatch') ||
20
- line.includes('handleInterceptedCrash')) {
21
- continue;
22
- }
23
- const iosMatch = line.match(/^([^@]*)@(.*):(\d+):(\d+)$/);
24
- if (iosMatch) {
25
- const [, method, fullPath, lineNum, colNum] = iosMatch;
26
- const cleanFile = fullPath.split('?')[0].split('/').pop() || fullPath;
27
- const isProject = !fullPath.includes('node_modules') && !fullPath.includes('Libraries/Core');
28
- frames.push({
29
- method: method.trim() || 'anonymous',
30
- file: cleanFile,
31
- fullPath: fullPath.split('?')[0],
32
- line: lineNum,
33
- column: colNum,
34
- isProjectFile: isProject,
35
- });
36
- continue;
37
- }
38
- const androidMatch = line.match(/^\s*at\s+(.+)\s+\((.+):(\d+):(\d+)\)$/);
39
- if (androidMatch) {
40
- const [, method, fullPath, lineNum, colNum] = androidMatch;
41
- const cleanFile = fullPath.split('?')[0].split('/').pop() || fullPath;
42
- const isProject = !fullPath.includes('node_modules') && !fullPath.includes('Libraries/Core');
43
- frames.push({
44
- method: method.trim(),
45
- file: cleanFile,
46
- fullPath: fullPath.split('?')[0],
47
- line: lineNum,
48
- column: colNum,
49
- isProjectFile: isProject,
50
- });
51
- continue;
52
- }
53
- const androidMatchSimple = line.match(/^\s*at\s+(.+):(\d+):(\d+)$/);
54
- if (androidMatchSimple) {
55
- const [, fullPath, lineNum, colNum] = androidMatchSimple;
56
- const cleanFile = fullPath.split('?')[0].split('/').pop() || fullPath;
57
- const isProject = !fullPath.includes('node_modules') && !fullPath.includes('Libraries/Core');
58
- frames.push({
59
- method: 'anonymous',
60
- file: cleanFile,
61
- fullPath: fullPath.split('?')[0],
62
- line: lineNum,
63
- column: colNum,
64
- isProjectFile: isProject,
65
- });
66
- }
67
- }
68
- const rootFrame = frames.find(f => f.isProjectFile) || frames[0] || null;
69
- return { rootFrame, frames };
70
- }
71
- export class ErrorBoundary extends Component {
72
- constructor() {
73
- super(...arguments);
74
- this.state = {
75
- hasError: false,
76
- error: null,
77
- };
78
- this.handleReset = () => {
79
- this.setState({ hasError: false, error: null });
80
- if (this.props.onReset) {
81
- this.props.onReset();
82
- }
83
- };
84
- this.handleCopyTrace = () => {
85
- const error = this.state.error;
86
- if (error) {
87
- const { rootFrame } = parseStackTrace(error.stack || '');
88
- const detailStr = `─────────────────────────────────────────────────────────────
89
- IN-APP INSPECTOR • INTERCEPTED CRASH REPORT
90
- ─────────────────────────────────────────────────────────────
91
- Error: ${error.name || 'Error'}
92
- Message: ${error.message}
93
- ${rootFrame ? `Location: ${rootFrame.file}:${rootFrame.line}:${rootFrame.column}\nMethod: ${rootFrame.method}\nPath: ${rootFrame.fullPath}` : ''}
1
+ import{Component as v}from"react";import{StyleSheet as _,Text as T,View as C,ScrollView as G,TouchableOpacity as O,SafeAreaView as J}from"react-native";import{AppColors as e}from"../styles/AppColors";import{AppFonts as w}from"../styles/AppFonts";import{copyToClipboard as U}from"../helpers";import{t as S}from"../i18n";import{WarningTriangleIcon as N,CopyIcon as H,RefreshCcwIcon as A,ClearIcon as K,CircleAlertIcon as Q}from"./NetworkIcons";import{handleInterceptedCrash as X}from"../customHooks/crashHandler";import{CrashType as Y}from"../types/enums";import{showNativeFloatingButton as Z,setNativeFloatingButtonBadge as ee}from"../native/NativeInspector";function W(E){if(!E)return{rootFrame:null,frames:[]};const V=E.split(`
2
+ `),B=[];for(const R of V){if(R.includes("ErrorBoundary")||R.includes("getDerivedStateFromError")||R.includes("componentDidCatch")||R.includes("handleInterceptedCrash"))continue;const I=R.match(/^([^@]*)@(.*):(\d+):(\d+)$/);if(I){const[,z,k,$,D]=I,j=k.split("?")[0].split("/").pop()||k,M=!k.includes("node_modules")&&!k.includes("Libraries/Core");B.push({method:z.trim()||"anonymous",file:j,fullPath:k.split("?")[0],line:$,column:D,isProjectFile:M});continue}const L=R.match(/^\s*at\s+(.+)\s+\((.+):(\d+):(\d+)\)$/);if(L){const[,z,k,$,D]=L,j=k.split("?")[0].split("/").pop()||k,M=!k.includes("node_modules")&&!k.includes("Libraries/Core");B.push({method:z.trim(),file:j,fullPath:k.split("?")[0],line:$,column:D,isProjectFile:M});continue}const P=R.match(/^\s*at\s+(.+):(\d+):(\d+)$/);if(P){const[,z,k,$]=P,D=z.split("?")[0].split("/").pop()||z,j=!z.includes("node_modules")&&!z.includes("Libraries/Core");B.push({method:"anonymous",file:D,fullPath:z.split("?")[0],line:k,column:$,isProjectFile:j})}}return{rootFrame:B.find(R=>R.isProjectFile)||B[0]||null,frames:B}}export class ErrorBoundary extends v{constructor(){super(...arguments),this.state={hasError:!1,error:null},this.handleReset=()=>{this.setState({hasError:!1,error:null}),this.props.onReset&&this.props.onReset()},this.handleCopyTrace=()=>{const V=this.state.error;if(V){const{rootFrame:B}=W(V.stack||""),F=`\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
3
+ IN-APP INSPECTOR \u2022 INTERCEPTED CRASH REPORT
4
+ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
5
+ Error: ${V.name||"Error"}
6
+ Message: ${V.message}
7
+ ${B?`Location: ${B.file}:${B.line}:${B.column}
8
+ Method: ${B.method}
9
+ Path: ${B.fullPath}`:""}
94
10
  Timestamp: ${new Date().toISOString()}
95
11
 
96
12
  Stack Trace:
97
- ${error.stack || 'No stack trace available'}
98
- ─────────────────────────────────────────────────────────────`;
99
- copyToClipboard(detailStr, t('errors.errorReport'));
100
- }
101
- };
102
- }
103
- static getDerivedStateFromError(error) {
104
- return { hasError: true, error };
105
- }
106
- componentDidCatch(error, errorInfo) {
107
- try {
108
- const stack = error?.stack || errorInfo?.componentStack || '';
109
- handleInterceptedCrash(error, stack, false, CrashType.Render, errorInfo?.componentStack);
110
- showNativeFloatingButton();
111
- setNativeFloatingButtonBadge(true);
112
- }
113
- catch { }
114
- }
115
- render() {
116
- const { hasError, error } = this.state;
117
- if (!hasError || !error) {
118
- return this.props.children;
119
- }
120
- const { rootFrame, frames } = parseStackTrace(error.stack || '');
121
- const errorType = error.name || t('errors.title');
122
- const isSyntaxOrType = errorType.includes('Syntax') ||
123
- errorType.includes('Type') ||
124
- errorType.includes('Reference');
125
- if (this.props.fallbackType === 'inline') {
126
- return (<View style={styles.inlineContainer}>
127
- <View style={styles.inlineHeader}>
128
- <WarningTriangleIcon color={AppColors.red600} size={18}/>
129
- <View style={{ flex: 1 }}>
130
- <Text style={styles.inlineTitle} numberOfLines={1}>
131
- {errorType}: {error.message}
132
- </Text>
133
- {rootFrame && (<Text style={styles.inlineLoc} numberOfLines={1}>
134
- {rootFrame.file}:{rootFrame.line} ({rootFrame.method})
135
- </Text>)}
136
- </View>
137
- </View>
138
- <View style={styles.inlineActions}>
139
- <TouchableOpacity onPress={this.handleReset} style={styles.inlineBtn} activeOpacity={0.7}>
140
- <RefreshCcwIcon size={12} color={AppColors.white}/>
141
- <Text style={styles.inlineBtnText}>{t('errors.retry')}</Text>
142
- </TouchableOpacity>
143
- <TouchableOpacity onPress={this.handleCopyTrace} style={styles.inlineCopyBtn} activeOpacity={0.7}>
144
- <CopyIcon size={12} color={AppColors.redErrorText}/>
145
- <Text style={styles.inlineCopyBtnText}>{t('errors.copy')}</Text>
146
- </TouchableOpacity>
147
- </View>
148
- </View>);
149
- }
150
- return (<SafeAreaView style={styles.safeArea}>
151
- <View style={styles.container}>
13
+ ${V.stack||"No stack trace available"}
14
+ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`;U(F,S("errors.errorReport"))}}}static getDerivedStateFromError(V){return{hasError:!0,error:V}}componentDidCatch(V,B){try{const F=V?.stack||B?.componentStack||"";X(V,F,!1,Y.Render,B?.componentStack),Z(),ee(!0)}catch{}}render(){const{hasError:V,error:B}=this.state;if(!V||!B)return this.props.children;const{rootFrame:F,frames:R}=W(B.stack||""),I=B.name||S("errors.title"),L=I.includes("Syntax")||I.includes("Type")||I.includes("Reference");return this.props.fallbackType==="inline"?<C style={t.inlineContainer}>
15
+ <C style={t.inlineHeader}>
16
+ <N color={e.red600}size={18}/>
17
+ <C style={{flex:1}}>
18
+ <T style={t.inlineTitle}numberOfLines={1}>
19
+ {I}: {B.message}
20
+ </T>
21
+ {F&&<T style={t.inlineLoc}numberOfLines={1}>
22
+ {F.file}:{F.line} ({F.method})
23
+ </T>}
24
+ </C>
25
+ </C>
26
+ <C style={t.inlineActions}>
27
+ <O onPress={this.handleReset}style={t.inlineBtn}activeOpacity={.7}>
28
+ <A size={12}color={e.white}/>
29
+ <T style={t.inlineBtnText}>{S("errors.retry")}</T>
30
+ </O>
31
+ <O onPress={this.handleCopyTrace}style={t.inlineCopyBtn}activeOpacity={.7}>
32
+ <H size={12}color={e.redErrorText}/>
33
+ <T style={t.inlineCopyBtnText}>{S("errors.copy")}</T>
34
+ </O>
35
+ </C>
36
+ </C>:<J style={t.safeArea}>
37
+ <C style={t.container}>
152
38
 
153
- <View style={styles.header}>
154
- <View style={styles.iconGlowWrap}>
155
- <WarningTriangleIcon color={AppColors.red500} size={28}/>
156
- </View>
157
- <View style={{ flex: 1 }}>
158
- <View style={styles.badgeRow}>
159
- <View style={styles.crashBadge}>
160
- <Text style={styles.crashBadgeText}>
161
- {isSyntaxOrType ? `JS ${errorType.toUpperCase()}` : t('errors.crashIntercepted')}
162
- </Text>
163
- </View>
164
- <View style={styles.shieldBadge}>
165
- <Text style={styles.shieldBadgeText}>{t('errors.protected')}</Text>
166
- </View>
167
- </View>
168
- <Text style={styles.title}>{t('errors.rootCauseTitle')}</Text>
169
- <Text style={styles.subtitle}>{t('errors.rootCauseSubtitle')}</Text>
170
- </View>
171
- {this.props.onClose && (<TouchableOpacity onPress={this.props.onClose} style={styles.closeIconBtn} activeOpacity={0.7}>
172
- <ClearIcon size={16} color={AppColors.slate400}/>
173
- </TouchableOpacity>)}
174
- </View>
39
+ <C style={t.header}>
40
+ <C style={t.iconGlowWrap}>
41
+ <N color={e.red500}size={28}/>
42
+ </C>
43
+ <C style={{flex:1}}>
44
+ <C style={t.badgeRow}>
45
+ <C style={t.crashBadge}>
46
+ <T style={t.crashBadgeText}>
47
+ {L?`JS ${I.toUpperCase()}`:S("errors.crashIntercepted")}
48
+ </T>
49
+ </C>
50
+ <C style={t.shieldBadge}>
51
+ <T style={t.shieldBadgeText}>{S("errors.protected")}</T>
52
+ </C>
53
+ </C>
54
+ <T style={t.title}>{S("errors.rootCauseTitle")}</T>
55
+ <T style={t.subtitle}>{S("errors.rootCauseSubtitle")}</T>
56
+ </C>
57
+ {this.props.onClose&&<O onPress={this.props.onClose}style={t.closeIconBtn}activeOpacity={.7}>
58
+ <K size={16}color={e.slate400}/>
59
+ </O>}
60
+ </C>
175
61
 
176
- <ScrollView style={styles.scrollArea} contentContainerStyle={styles.scrollContent} showsVerticalScrollIndicator={false}>
62
+ <G style={t.scrollArea}contentContainerStyle={t.scrollContent}showsVerticalScrollIndicator={!1}>
177
63
 
178
- <View style={styles.errorBox}>
179
- <View style={styles.errorBoxHeader}>
180
- <CircleAlertIcon size={14} color={AppColors.red500}/>
181
- <Text style={styles.errorBoxTitle}>{errorType}</Text>
182
- </View>
183
- <Text style={styles.errorMessage}>{error.message}</Text>
184
- </View>
64
+ <C style={t.errorBox}>
65
+ <C style={t.errorBoxHeader}>
66
+ <Q size={14}color={e.red500}/>
67
+ <T style={t.errorBoxTitle}>{I}</T>
68
+ </C>
69
+ <T style={t.errorMessage}>{B.message}</T>
70
+ </C>
185
71
 
186
72
 
187
- {rootFrame && (<View style={styles.locationCard}>
188
- <Text style={styles.cardHeaderTitle}>{t('errors.exactLocation')}</Text>
189
- <View style={styles.locRow}>
190
- <Text style={styles.locLabel}>{t('errors.file')}</Text>
191
- <Text style={styles.locValFile} numberOfLines={1}>
192
- {rootFrame.file}
193
- </Text>
194
- </View>
195
- <View style={styles.locRow}>
196
- <Text style={styles.locLabel}>{t('errors.lineCol')}</Text>
197
- <Text style={styles.locValNum}>
198
- {t('errors.lineColVal', { line: rootFrame.line, col: rootFrame.column })}
199
- </Text>
200
- </View>
201
- <View style={styles.locRow}>
202
- <Text style={styles.locLabel}>{t('errors.function')}</Text>
203
- <Text style={styles.locValMethod}>{rootFrame.method}()</Text>
204
- </View>
205
- {rootFrame.fullPath ? (<Text style={styles.fullPathText} numberOfLines={2}>
206
- {rootFrame.fullPath}
207
- </Text>) : null}
208
- </View>)}
73
+ {F&&<C style={t.locationCard}>
74
+ <T style={t.cardHeaderTitle}>{S("errors.exactLocation")}</T>
75
+ <C style={t.locRow}>
76
+ <T style={t.locLabel}>{S("errors.file")}</T>
77
+ <T style={t.locValFile}numberOfLines={1}>
78
+ {F.file}
79
+ </T>
80
+ </C>
81
+ <C style={t.locRow}>
82
+ <T style={t.locLabel}>{S("errors.lineCol")}</T>
83
+ <T style={t.locValNum}>
84
+ {S("errors.lineColVal",{line:F.line,col:F.column})}
85
+ </T>
86
+ </C>
87
+ <C style={t.locRow}>
88
+ <T style={t.locLabel}>{S("errors.function")}</T>
89
+ <T style={t.locValMethod}>{F.method}()</T>
90
+ </C>
91
+ {F.fullPath?<T style={t.fullPathText}numberOfLines={2}>
92
+ {F.fullPath}
93
+ </T>:null}
94
+ </C>}
209
95
 
210
96
 
211
- <View style={styles.stackCard}>
212
- <View style={styles.stackCardHeader}>
213
- <Text style={styles.cardHeaderTitle}>{t('errors.callStack')}</Text>
214
- <Text style={styles.frameCountText}>
215
- {t('errors.framesCount', { count: frames.length })}
216
- </Text>
217
- </View>
97
+ <C style={t.stackCard}>
98
+ <C style={t.stackCardHeader}>
99
+ <T style={t.cardHeaderTitle}>{S("errors.callStack")}</T>
100
+ <T style={t.frameCountText}>
101
+ {S("errors.framesCount",{count:R.length})}
102
+ </T>
103
+ </C>
218
104
 
219
- {frames.slice(0, 8).map((frame, idx) => (<View key={idx} style={[
220
- styles.frameItem,
221
- frame.isProjectFile && styles.frameItemProject,
222
- ]}>
223
- <View style={styles.frameNumBadge}>
224
- <Text style={[
225
- styles.frameNumText,
226
- frame.isProjectFile && { color: AppColors.sky400 },
227
- ]}>
228
- #{idx + 1}
229
- </Text>
230
- </View>
231
- <View style={{ flex: 1 }}>
232
- <Text style={[
233
- styles.frameMethod,
234
- frame.isProjectFile && styles.frameMethodProject,
235
- ]} numberOfLines={1}>
236
- {frame.method}
237
- </Text>
238
- <Text style={styles.frameLoc} numberOfLines={1}>
239
- {frame.file}:{frame.line}:{frame.column}
240
- </Text>
241
- </View>
242
- {frame.isProjectFile && (<View style={styles.appTag}>
243
- <Text style={styles.appTagText}>{t('errors.appTag')}</Text>
244
- </View>)}
245
- </View>))}
246
- </View>
247
- </ScrollView>
105
+ {R.slice(0,8).map((P,z)=><C key={z}style={[t.frameItem,P.isProjectFile&&t.frameItemProject]}>
106
+ <C style={t.frameNumBadge}>
107
+ <T style={[t.frameNumText,P.isProjectFile&&{color:e.sky400}]}>
108
+ #{z+1}
109
+ </T>
110
+ </C>
111
+ <C style={{flex:1}}>
112
+ <T style={[t.frameMethod,P.isProjectFile&&t.frameMethodProject]}numberOfLines={1}>
113
+ {P.method}
114
+ </T>
115
+ <T style={t.frameLoc}numberOfLines={1}>
116
+ {P.file}:{P.line}:{P.column}
117
+ </T>
118
+ </C>
119
+ {P.isProjectFile&&<C style={t.appTag}>
120
+ <T style={t.appTagText}>{S("errors.appTag")}</T>
121
+ </C>}
122
+ </C>)}
123
+ </C>
124
+ </G>
248
125
 
249
126
 
250
- <View style={styles.footer}>
251
- <TouchableOpacity onPress={this.handleReset} style={styles.retryBtn} activeOpacity={0.8}>
252
- <RefreshCcwIcon size={16} color={AppColors.white}/>
253
- <Text style={styles.retryBtnText}>{t('errors.tryAgainRecover')}</Text>
254
- </TouchableOpacity>
127
+ <C style={t.footer}>
128
+ <O onPress={this.handleReset}style={t.retryBtn}activeOpacity={.8}>
129
+ <A size={16}color={e.white}/>
130
+ <T style={t.retryBtnText}>{S("errors.tryAgainRecover")}</T>
131
+ </O>
255
132
 
256
- <TouchableOpacity onPress={this.handleCopyTrace} style={styles.copyBtn} activeOpacity={0.8}>
257
- <CopyIcon size={16} color={AppColors.slate900}/>
258
- <Text style={styles.copyBtnText}>{t('errors.copyDiagnostics')}</Text>
259
- </TouchableOpacity>
260
- </View>
261
- </View>
262
- </SafeAreaView>);
263
- }
264
- }
265
- const styles = StyleSheet.create({
266
- safeArea: {
267
- flex: 1,
268
- backgroundColor: AppColors.slate850,
269
- },
270
- container: {
271
- flex: 1,
272
- backgroundColor: AppColors.slate850,
273
- },
274
- header: {
275
- flexDirection: 'row',
276
- alignItems: 'flex-start',
277
- paddingHorizontal: 16,
278
- paddingTop: 14,
279
- paddingBottom: 12,
280
- borderBottomWidth: 1,
281
- borderBottomColor: AppColors.slate800,
282
- gap: 12,
283
- },
284
- iconGlowWrap: {
285
- width: 44,
286
- height: 44,
287
- borderRadius: 12,
288
- backgroundColor: `${AppColors.red500}26`,
289
- borderWidth: 1,
290
- borderColor: `${AppColors.red500}59`,
291
- alignItems: 'center',
292
- justifyContent: 'center',
293
- marginTop: 2,
294
- },
295
- badgeRow: {
296
- flexDirection: 'row',
297
- alignItems: 'center',
298
- gap: 6,
299
- marginBottom: 4,
300
- },
301
- crashBadge: {
302
- backgroundColor: `${AppColors.red500}33`,
303
- paddingHorizontal: 7,
304
- paddingVertical: 2,
305
- borderRadius: 4,
306
- borderWidth: 1,
307
- borderColor: `${AppColors.red500}66`,
308
- },
309
- crashBadgeText: {
310
- fontFamily: AppFonts.interBold,
311
- fontSize: 9.5,
312
- color: AppColors.red500,
313
- letterSpacing: 0.5,
314
- },
315
- shieldBadge: {
316
- backgroundColor: `${AppColors.emerald500}26`,
317
- paddingHorizontal: 6,
318
- paddingVertical: 2,
319
- borderRadius: 4,
320
- borderWidth: 1,
321
- borderColor: `${AppColors.emerald500}4D`,
322
- },
323
- shieldBadgeText: {
324
- fontFamily: AppFonts.interBold,
325
- fontSize: 9,
326
- color: AppColors.emerald500,
327
- letterSpacing: 0.5,
328
- },
329
- title: {
330
- fontFamily: AppFonts.interBold,
331
- fontSize: 16,
332
- color: AppColors.white,
333
- letterSpacing: -0.2,
334
- },
335
- subtitle: {
336
- fontFamily: AppFonts.interRegular,
337
- fontSize: 11,
338
- color: AppColors.slate400,
339
- marginTop: 1,
340
- },
341
- closeIconBtn: {
342
- padding: 6,
343
- borderRadius: 8,
344
- backgroundColor: AppColors.slate800,
345
- },
346
- scrollArea: {
347
- flex: 1,
348
- },
349
- scrollContent: {
350
- padding: 16,
351
- gap: 12,
352
- },
353
- errorBox: {
354
- backgroundColor: `${AppColors.red500}1A`,
355
- borderRadius: 12,
356
- borderWidth: 1,
357
- borderColor: `${AppColors.red500}40`,
358
- padding: 14,
359
- gap: 6,
360
- },
361
- errorBoxHeader: {
362
- flexDirection: 'row',
363
- alignItems: 'center',
364
- gap: 6,
365
- },
366
- errorBoxTitle: {
367
- fontFamily: AppFonts.interBold,
368
- fontSize: 12,
369
- color: AppColors.red500,
370
- letterSpacing: 0.3,
371
- },
372
- errorMessage: {
373
- fontFamily: AppFonts.interBold,
374
- fontSize: 13.5,
375
- color: AppColors.red100,
376
- lineHeight: 19,
377
- },
378
- locationCard: {
379
- backgroundColor: AppColors.slate800,
380
- borderRadius: 12,
381
- padding: 14,
382
- borderWidth: 1,
383
- borderColor: AppColors.slate700,
384
- gap: 8,
385
- },
386
- cardHeaderTitle: {
387
- fontFamily: AppFonts.interBold,
388
- fontSize: 10.5,
389
- color: AppColors.slate400,
390
- letterSpacing: 0.8,
391
- },
392
- locRow: {
393
- flexDirection: 'row',
394
- alignItems: 'center',
395
- justifyContent: 'space-between',
396
- gap: 8,
397
- },
398
- locLabel: {
399
- fontFamily: AppFonts.interMedium,
400
- fontSize: 12,
401
- color: AppColors.slate400,
402
- minWidth: 80,
403
- },
404
- locValFile: {
405
- fontFamily: AppFonts.interBold,
406
- fontSize: 12.5,
407
- color: AppColors.sky400,
408
- flex: 1,
409
- textAlign: 'right',
410
- },
411
- locValNum: {
412
- fontFamily: AppFonts.interBold,
413
- fontSize: 12,
414
- color: AppColors.white,
415
- },
416
- locValMethod: {
417
- fontFamily: AppFonts.interMedium,
418
- fontSize: 12,
419
- color: AppColors.purple400,
420
- },
421
- fullPathText: {
422
- fontFamily: AppFonts.interRegular,
423
- fontSize: 10,
424
- color: AppColors.slate500,
425
- marginTop: 2,
426
- paddingTop: 6,
427
- borderTopWidth: 1,
428
- borderTopColor: AppColors.slate700,
429
- },
430
- stackCard: {
431
- backgroundColor: AppColors.slate800,
432
- borderRadius: 12,
433
- padding: 14,
434
- borderWidth: 1,
435
- borderColor: AppColors.slate700,
436
- gap: 8,
437
- },
438
- stackCardHeader: {
439
- flexDirection: 'row',
440
- justifyContent: 'space-between',
441
- alignItems: 'center',
442
- marginBottom: 4,
443
- },
444
- frameCountText: {
445
- fontFamily: AppFonts.interMedium,
446
- fontSize: 10.5,
447
- color: AppColors.slate400,
448
- },
449
- frameItem: {
450
- flexDirection: 'row',
451
- alignItems: 'center',
452
- backgroundColor: AppColors.slate850,
453
- padding: 10,
454
- borderRadius: 8,
455
- gap: 10,
456
- borderWidth: 1,
457
- borderColor: AppColors.slate800,
458
- },
459
- frameItemProject: {
460
- borderColor: `${AppColors.sky400}4D`,
461
- backgroundColor: `${AppColors.sky400}0D`,
462
- },
463
- frameNumBadge: {
464
- width: 24,
465
- alignItems: 'center',
466
- },
467
- frameNumText: {
468
- fontFamily: AppFonts.interBold,
469
- fontSize: 10.5,
470
- color: AppColors.slate500,
471
- },
472
- frameMethod: {
473
- fontFamily: AppFonts.interBold,
474
- fontSize: 11.5,
475
- color: AppColors.slate200,
476
- },
477
- frameMethodProject: {
478
- color: AppColors.white,
479
- },
480
- frameLoc: {
481
- fontFamily: AppFonts.interRegular,
482
- fontSize: 10,
483
- color: AppColors.slate400,
484
- marginTop: 1,
485
- },
486
- appTag: {
487
- backgroundColor: `${AppColors.sky400}33`,
488
- paddingHorizontal: 5,
489
- paddingVertical: 2,
490
- borderRadius: 4,
491
- },
492
- appTagText: {
493
- fontFamily: AppFonts.interBold,
494
- fontSize: 8.5,
495
- color: AppColors.sky400,
496
- },
497
- footer: {
498
- flexDirection: 'row',
499
- padding: 14,
500
- backgroundColor: AppColors.slate800,
501
- borderTopWidth: 1,
502
- borderTopColor: AppColors.slate700,
503
- gap: 10,
504
- },
505
- retryBtn: {
506
- flex: 1.2,
507
- flexDirection: 'row',
508
- alignItems: 'center',
509
- justifyContent: 'center',
510
- gap: 8,
511
- backgroundColor: AppColors.purple,
512
- height: 44,
513
- borderRadius: 10,
514
- },
515
- retryBtnText: {
516
- fontFamily: AppFonts.interBold,
517
- fontSize: 13,
518
- color: AppColors.white,
519
- },
520
- copyBtn: {
521
- flex: 1,
522
- flexDirection: 'row',
523
- alignItems: 'center',
524
- justifyContent: 'center',
525
- gap: 8,
526
- backgroundColor: AppColors.slate100,
527
- height: 44,
528
- borderRadius: 10,
529
- },
530
- copyBtnText: {
531
- fontFamily: AppFonts.interBold,
532
- fontSize: 13,
533
- color: AppColors.slate900,
534
- },
535
- inlineContainer: {
536
- padding: 12,
537
- backgroundColor: AppColors.red50,
538
- borderWidth: 1,
539
- borderColor: AppColors.errorBorder,
540
- borderRadius: 10,
541
- margin: 8,
542
- gap: 10,
543
- },
544
- inlineHeader: {
545
- flexDirection: 'row',
546
- alignItems: 'flex-start',
547
- gap: 10,
548
- },
549
- inlineTitle: {
550
- fontFamily: AppFonts.interBold,
551
- fontSize: 12,
552
- color: AppColors.red600,
553
- },
554
- inlineLoc: {
555
- fontFamily: AppFonts.interMedium,
556
- fontSize: 10.5,
557
- color: AppColors.redErrorText,
558
- marginTop: 2,
559
- },
560
- inlineActions: {
561
- flexDirection: 'row',
562
- gap: 8,
563
- justifyContent: 'flex-end',
564
- },
565
- inlineBtn: {
566
- flexDirection: 'row',
567
- alignItems: 'center',
568
- gap: 4,
569
- backgroundColor: AppColors.red600,
570
- paddingHorizontal: 10,
571
- paddingVertical: 5,
572
- borderRadius: 6,
573
- },
574
- inlineBtnText: {
575
- fontFamily: AppFonts.interBold,
576
- fontSize: 11,
577
- color: AppColors.white,
578
- },
579
- inlineCopyBtn: {
580
- flexDirection: 'row',
581
- alignItems: 'center',
582
- gap: 4,
583
- backgroundColor: AppColors.red100,
584
- borderWidth: 1,
585
- borderColor: AppColors.errorBorder,
586
- paddingHorizontal: 10,
587
- paddingVertical: 5,
588
- borderRadius: 6,
589
- },
590
- inlineCopyBtnText: {
591
- fontFamily: AppFonts.interMedium,
592
- fontSize: 11,
593
- color: AppColors.redErrorText,
594
- },
595
- });
596
- export default ErrorBoundary;
133
+ <O onPress={this.handleCopyTrace}style={t.copyBtn}activeOpacity={.8}>
134
+ <H size={16}color={e.slate900}/>
135
+ <T style={t.copyBtnText}>{S("errors.copyDiagnostics")}</T>
136
+ </O>
137
+ </C>
138
+ </C>
139
+ </J>}}const t=_.create({safeArea:{flex:1,backgroundColor:e.slate850},container:{flex:1,backgroundColor:e.slate850},header:{flexDirection:"row",alignItems:"flex-start",paddingHorizontal:16,paddingTop:14,paddingBottom:12,borderBottomWidth:1,borderBottomColor:e.slate800,gap:12},iconGlowWrap:{width:44,height:44,borderRadius:12,backgroundColor:`${e.red500}26`,borderWidth:1,borderColor:`${e.red500}59`,alignItems:"center",justifyContent:"center",marginTop:2},badgeRow:{flexDirection:"row",alignItems:"center",gap:6,marginBottom:4},crashBadge:{backgroundColor:`${e.red500}33`,paddingHorizontal:7,paddingVertical:2,borderRadius:4,borderWidth:1,borderColor:`${e.red500}66`},crashBadgeText:{fontFamily:w.interBold,fontSize:9.5,color:e.red500,letterSpacing:.5},shieldBadge:{backgroundColor:`${e.emerald500}26`,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1,borderColor:`${e.emerald500}4D`},shieldBadgeText:{fontFamily:w.interBold,fontSize:9,color:e.emerald500,letterSpacing:.5},title:{fontFamily:w.interBold,fontSize:16,color:e.white,letterSpacing:-.2},subtitle:{fontFamily:w.interRegular,fontSize:11,color:e.slate400,marginTop:1},closeIconBtn:{padding:6,borderRadius:8,backgroundColor:e.slate800},scrollArea:{flex:1},scrollContent:{padding:16,gap:12},errorBox:{backgroundColor:`${e.red500}1A`,borderRadius:12,borderWidth:1,borderColor:`${e.red500}40`,padding:14,gap:6},errorBoxHeader:{flexDirection:"row",alignItems:"center",gap:6},errorBoxTitle:{fontFamily:w.interBold,fontSize:12,color:e.red500,letterSpacing:.3},errorMessage:{fontFamily:w.interBold,fontSize:13.5,color:e.red100,lineHeight:19},locationCard:{backgroundColor:e.slate800,borderRadius:12,padding:14,borderWidth:1,borderColor:e.slate700,gap:8},cardHeaderTitle:{fontFamily:w.interBold,fontSize:10.5,color:e.slate400,letterSpacing:.8},locRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:8},locLabel:{fontFamily:w.interMedium,fontSize:12,color:e.slate400,minWidth:80},locValFile:{fontFamily:w.interBold,fontSize:12.5,color:e.sky400,flex:1,textAlign:"right"},locValNum:{fontFamily:w.interBold,fontSize:12,color:e.white},locValMethod:{fontFamily:w.interMedium,fontSize:12,color:e.purple400},fullPathText:{fontFamily:w.interRegular,fontSize:10,color:e.slate500,marginTop:2,paddingTop:6,borderTopWidth:1,borderTopColor:e.slate700},stackCard:{backgroundColor:e.slate800,borderRadius:12,padding:14,borderWidth:1,borderColor:e.slate700,gap:8},stackCardHeader:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:4},frameCountText:{fontFamily:w.interMedium,fontSize:10.5,color:e.slate400},frameItem:{flexDirection:"row",alignItems:"center",backgroundColor:e.slate850,padding:10,borderRadius:8,gap:10,borderWidth:1,borderColor:e.slate800},frameItemProject:{borderColor:`${e.sky400}4D`,backgroundColor:`${e.sky400}0D`},frameNumBadge:{width:24,alignItems:"center"},frameNumText:{fontFamily:w.interBold,fontSize:10.5,color:e.slate500},frameMethod:{fontFamily:w.interBold,fontSize:11.5,color:e.slate200},frameMethodProject:{color:e.white},frameLoc:{fontFamily:w.interRegular,fontSize:10,color:e.slate400,marginTop:1},appTag:{backgroundColor:`${e.sky400}33`,paddingHorizontal:5,paddingVertical:2,borderRadius:4},appTagText:{fontFamily:w.interBold,fontSize:8.5,color:e.sky400},footer:{flexDirection:"row",padding:14,backgroundColor:e.slate800,borderTopWidth:1,borderTopColor:e.slate700,gap:10},retryBtn:{flex:1.2,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,backgroundColor:e.purple,height:44,borderRadius:10},retryBtnText:{fontFamily:w.interBold,fontSize:13,color:e.white},copyBtn:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,backgroundColor:e.slate100,height:44,borderRadius:10},copyBtnText:{fontFamily:w.interBold,fontSize:13,color:e.slate900},inlineContainer:{padding:12,backgroundColor:e.red50,borderWidth:1,borderColor:e.errorBorder,borderRadius:10,margin:8,gap:10},inlineHeader:{flexDirection:"row",alignItems:"flex-start",gap:10},inlineTitle:{fontFamily:w.interBold,fontSize:12,color:e.red600},inlineLoc:{fontFamily:w.interMedium,fontSize:10.5,color:e.redErrorText,marginTop:2},inlineActions:{flexDirection:"row",gap:8,justifyContent:"flex-end"},inlineBtn:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:e.red600,paddingHorizontal:10,paddingVertical:5,borderRadius:6},inlineBtnText:{fontFamily:w.interBold,fontSize:11,color:e.white},inlineCopyBtn:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:e.red100,borderWidth:1,borderColor:e.errorBorder,paddingHorizontal:10,paddingVertical:5,borderRadius:6},inlineCopyBtnText:{fontFamily:w.interMedium,fontSize:11,color:e.redErrorText}});export default ErrorBoundary;