react-native-inapp-inspector 1.1.13 → 1.1.15

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 (250) hide show
  1. package/README.md +9 -34
  2. package/dist/commonjs/assets/svgAssets.d.ts +3 -0
  3. package/dist/commonjs/assets/svgAssets.js +17 -0
  4. package/dist/commonjs/components/AnalyticsEventCard.d.ts +1 -14
  5. package/dist/commonjs/components/AnalyticsEventCard.js +120 -50
  6. package/dist/commonjs/components/AnalyticsGraph.d.ts +2 -6
  7. package/dist/commonjs/components/AnalyticsGraph.js +8 -8
  8. package/dist/commonjs/components/AnalyticsTabView.d.ts +15 -0
  9. package/dist/commonjs/components/AnalyticsTabView.js +157 -0
  10. package/dist/commonjs/components/AnimatedEntrance.d.ts +1 -1
  11. package/dist/commonjs/components/AnimatedEntrance.js +2 -2
  12. package/dist/commonjs/components/ApiDetailView.d.ts +22 -0
  13. package/dist/commonjs/components/ApiDetailView.js +304 -0
  14. package/dist/commonjs/components/ApisTabView.d.ts +33 -0
  15. package/dist/commonjs/components/ApisTabView.js +235 -0
  16. package/dist/commonjs/components/CodeSnippet.d.ts +1 -5
  17. package/dist/commonjs/components/CodeSnippet.js +34 -34
  18. package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -8
  19. package/dist/commonjs/components/ConsoleLogCard.js +262 -442
  20. package/dist/commonjs/components/ConsoleLogDetailView.d.ts +9 -0
  21. package/dist/commonjs/components/ConsoleLogDetailView.js +278 -0
  22. package/dist/commonjs/components/ConsoleLogsTabView.d.ts +24 -0
  23. package/dist/commonjs/components/ConsoleLogsTabView.js +354 -0
  24. package/dist/commonjs/components/DiffViewer.js +4 -2
  25. package/dist/commonjs/components/DomainHeader.js +66 -41
  26. package/dist/commonjs/components/EmptyState.d.ts +2 -2
  27. package/dist/commonjs/components/EmptyState.js +2 -2
  28. package/dist/commonjs/components/EndOfListFooter.d.ts +8 -0
  29. package/dist/commonjs/components/EndOfListFooter.js +90 -0
  30. package/dist/commonjs/components/ErrorBoundary.d.ts +5 -14
  31. package/dist/commonjs/components/ErrorBoundary.js +28 -28
  32. package/dist/commonjs/components/FloatingBubble.d.ts +14 -0
  33. package/dist/commonjs/components/FloatingBubble.js +75 -0
  34. package/dist/commonjs/components/HeadersSection.js +5 -3
  35. package/dist/commonjs/components/HighlightText.d.ts +1 -1
  36. package/dist/commonjs/components/HighlightText.js +5 -7
  37. package/dist/commonjs/components/Inspector/AnalyticsTab.d.ts +3 -0
  38. package/dist/commonjs/components/Inspector/AnalyticsTab.js +232 -0
  39. package/dist/commonjs/components/Inspector/ConsoleTab.d.ts +3 -0
  40. package/dist/commonjs/components/Inspector/ConsoleTab.js +410 -0
  41. package/dist/commonjs/components/Inspector/FabLauncher.d.ts +3 -0
  42. package/dist/commonjs/components/Inspector/FabLauncher.js +54 -0
  43. package/dist/commonjs/components/Inspector/InsightsDashboard.d.ts +3 -0
  44. package/dist/commonjs/components/Inspector/InsightsDashboard.js +619 -0
  45. package/dist/commonjs/components/Inspector/InspectorContext.d.ts +5 -0
  46. package/dist/commonjs/components/Inspector/InspectorContext.js +18 -0
  47. package/dist/commonjs/components/Inspector/InspectorHeader.d.ts +3 -0
  48. package/dist/commonjs/components/Inspector/InspectorHeader.js +452 -0
  49. package/dist/commonjs/components/Inspector/LogDetail.d.ts +3 -0
  50. package/dist/commonjs/components/Inspector/LogDetail.js +963 -0
  51. package/dist/commonjs/components/Inspector/MainScreen.d.ts +3 -0
  52. package/dist/commonjs/components/Inspector/MainScreen.js +68 -0
  53. package/dist/commonjs/components/Inspector/NavigationTracker.d.ts +3 -0
  54. package/dist/commonjs/components/Inspector/NavigationTracker.js +12 -0
  55. package/dist/commonjs/components/Inspector/NetworkDetail.d.ts +3 -0
  56. package/dist/commonjs/components/Inspector/NetworkDetail.js +405 -0
  57. package/dist/commonjs/components/Inspector/NetworkTab.d.ts +3 -0
  58. package/dist/commonjs/components/Inspector/NetworkTab.js +281 -0
  59. package/dist/commonjs/components/Inspector/ReduxTab.d.ts +3 -0
  60. package/dist/commonjs/components/Inspector/ReduxTab.js +75 -0
  61. package/dist/commonjs/components/Inspector/SettingsPanel.d.ts +3 -0
  62. package/dist/commonjs/components/Inspector/SettingsPanel.js +1476 -0
  63. package/dist/commonjs/components/Inspector/TabBar.d.ts +3 -0
  64. package/dist/commonjs/components/Inspector/TabBar.js +95 -0
  65. package/dist/commonjs/components/Inspector/WebViewTab.d.ts +3 -0
  66. package/dist/commonjs/components/Inspector/WebViewTab.js +757 -0
  67. package/dist/commonjs/components/InspectorHeader.d.ts +19 -0
  68. package/dist/commonjs/components/InspectorHeader.js +329 -0
  69. package/dist/commonjs/components/InspectorTabBar.d.ts +16 -0
  70. package/dist/commonjs/components/InspectorTabBar.js +90 -0
  71. package/dist/commonjs/components/JsonViewer.d.ts +4 -1
  72. package/dist/commonjs/components/JsonViewer.js +110 -171
  73. package/dist/commonjs/components/LogCard.js +109 -86
  74. package/dist/commonjs/components/MetaAccordion.d.ts +1 -10
  75. package/dist/commonjs/components/MetaAccordion.js +23 -21
  76. package/dist/commonjs/components/NavigationTracker.d.ts +7 -0
  77. package/dist/commonjs/components/NavigationTracker.js +76 -0
  78. package/dist/commonjs/components/NetworkIcons.d.ts +6 -0
  79. package/dist/commonjs/components/NetworkIcons.js +54 -8
  80. package/dist/commonjs/components/ReduxTabView.d.ts +9 -0
  81. package/dist/commonjs/components/ReduxTabView.js +56 -0
  82. package/dist/commonjs/components/ReduxTreeView.js +241 -200
  83. package/dist/commonjs/components/SegmentedTabs.d.ts +15 -0
  84. package/dist/commonjs/components/SegmentedTabs.js +52 -0
  85. package/dist/commonjs/components/SettingsView.d.ts +13 -0
  86. package/dist/commonjs/components/SettingsView.js +328 -0
  87. package/dist/commonjs/components/TouchableScale.d.ts +2 -2
  88. package/dist/commonjs/components/TouchableScale.js +2 -2
  89. package/dist/commonjs/components/TreeNode.js +2 -2
  90. package/dist/commonjs/constants/index.js +1 -12
  91. package/dist/commonjs/constants/version.d.ts +1 -1
  92. package/dist/commonjs/constants/version.js +1 -1
  93. package/dist/commonjs/customHooks/analyticsLogger.d.ts +8 -0
  94. package/dist/commonjs/customHooks/analyticsLogger.js +42 -1
  95. package/dist/commonjs/customHooks/consoleLogger.js +137 -13
  96. package/dist/commonjs/customHooks/networkLogger.d.ts +0 -1
  97. package/dist/commonjs/customHooks/networkLogger.js +0 -1
  98. package/dist/commonjs/customHooks/reduxLogger.d.ts +2 -9
  99. package/dist/commonjs/enums/index.d.ts +39 -0
  100. package/dist/commonjs/enums/index.js +50 -0
  101. package/dist/commonjs/helpers/index.d.ts +27 -1
  102. package/dist/commonjs/helpers/index.js +187 -12
  103. package/dist/commonjs/helpers/settingsStore.d.ts +2 -24
  104. package/dist/commonjs/i18n/en.json +144 -0
  105. package/dist/commonjs/i18n/index.d.ts +2 -0
  106. package/dist/commonjs/i18n/index.js +27 -0
  107. package/dist/commonjs/i18n/locales/en.json +314 -0
  108. package/dist/commonjs/index.d.ts +2 -3
  109. package/dist/commonjs/index.js +207 -4927
  110. package/dist/commonjs/styles/AppColors.d.ts +148 -0
  111. package/dist/commonjs/styles/AppColors.js +176 -0
  112. package/dist/commonjs/styles/common.d.ts +3 -0
  113. package/dist/commonjs/styles/common.js +201 -0
  114. package/dist/commonjs/styles/index.d.ts +219 -435
  115. package/dist/commonjs/styles/index.js +312 -488
  116. package/dist/commonjs/types/enums.d.ts +9 -0
  117. package/dist/commonjs/types/enums.js +4 -0
  118. package/dist/commonjs/types/index.d.ts +4 -111
  119. package/dist/commonjs/types/index.js +16 -0
  120. package/dist/commonjs/types/interfaces.d.ts +337 -0
  121. package/dist/commonjs/types/interfaces.js +2 -0
  122. package/dist/esm/assets/svgAssets.d.ts +3 -0
  123. package/dist/esm/assets/svgAssets.js +14 -0
  124. package/dist/esm/components/AnalyticsEventCard.d.ts +1 -14
  125. package/dist/esm/components/AnalyticsEventCard.js +118 -48
  126. package/dist/esm/components/AnalyticsGraph.d.ts +2 -6
  127. package/dist/esm/components/AnalyticsGraph.js +8 -8
  128. package/dist/esm/components/AnalyticsTabView.d.ts +15 -0
  129. package/dist/esm/components/AnalyticsTabView.js +151 -0
  130. package/dist/esm/components/AnimatedEntrance.d.ts +1 -1
  131. package/dist/esm/components/AnimatedEntrance.js +2 -2
  132. package/dist/esm/components/ApiDetailView.d.ts +22 -0
  133. package/dist/esm/components/ApiDetailView.js +264 -0
  134. package/dist/esm/components/ApisTabView.d.ts +33 -0
  135. package/dist/esm/components/ApisTabView.js +196 -0
  136. package/dist/esm/components/CodeSnippet.d.ts +1 -5
  137. package/dist/esm/components/CodeSnippet.js +34 -34
  138. package/dist/esm/components/ConsoleLogCard.d.ts +1 -8
  139. package/dist/esm/components/ConsoleLogCard.js +262 -409
  140. package/dist/esm/components/ConsoleLogDetailView.d.ts +9 -0
  141. package/dist/esm/components/ConsoleLogDetailView.js +271 -0
  142. package/dist/esm/components/ConsoleLogsTabView.d.ts +24 -0
  143. package/dist/esm/components/ConsoleLogsTabView.js +348 -0
  144. package/dist/esm/components/DiffViewer.js +4 -2
  145. package/dist/esm/components/DomainHeader.js +66 -41
  146. package/dist/esm/components/EmptyState.d.ts +2 -2
  147. package/dist/esm/components/EmptyState.js +2 -2
  148. package/dist/esm/components/EndOfListFooter.d.ts +8 -0
  149. package/dist/esm/components/EndOfListFooter.js +83 -0
  150. package/dist/esm/components/ErrorBoundary.d.ts +5 -14
  151. package/dist/esm/components/ErrorBoundary.js +29 -29
  152. package/dist/esm/components/FloatingBubble.d.ts +14 -0
  153. package/dist/esm/components/FloatingBubble.js +68 -0
  154. package/dist/esm/components/HeadersSection.js +5 -3
  155. package/dist/esm/components/HighlightText.d.ts +1 -1
  156. package/dist/esm/components/HighlightText.js +5 -7
  157. package/dist/esm/components/Inspector/AnalyticsTab.d.ts +3 -0
  158. package/dist/esm/components/Inspector/AnalyticsTab.js +194 -0
  159. package/dist/esm/components/Inspector/ConsoleTab.d.ts +3 -0
  160. package/dist/esm/components/Inspector/ConsoleTab.js +372 -0
  161. package/dist/esm/components/Inspector/FabLauncher.d.ts +3 -0
  162. package/dist/esm/components/Inspector/FabLauncher.js +49 -0
  163. package/dist/esm/components/Inspector/InsightsDashboard.d.ts +3 -0
  164. package/dist/esm/components/Inspector/InsightsDashboard.js +614 -0
  165. package/dist/esm/components/Inspector/InspectorContext.d.ts +5 -0
  166. package/dist/esm/components/Inspector/InspectorContext.js +13 -0
  167. package/dist/esm/components/Inspector/InspectorHeader.d.ts +3 -0
  168. package/dist/esm/components/Inspector/InspectorHeader.js +447 -0
  169. package/dist/esm/components/Inspector/LogDetail.d.ts +3 -0
  170. package/dist/esm/components/Inspector/LogDetail.js +925 -0
  171. package/dist/esm/components/Inspector/MainScreen.d.ts +3 -0
  172. package/dist/esm/components/Inspector/MainScreen.js +63 -0
  173. package/dist/esm/components/Inspector/NavigationTracker.d.ts +3 -0
  174. package/dist/esm/components/Inspector/NavigationTracker.js +10 -0
  175. package/dist/esm/components/Inspector/NetworkDetail.d.ts +3 -0
  176. package/dist/esm/components/Inspector/NetworkDetail.js +367 -0
  177. package/dist/esm/components/Inspector/NetworkTab.d.ts +3 -0
  178. package/dist/esm/components/Inspector/NetworkTab.js +243 -0
  179. package/dist/esm/components/Inspector/ReduxTab.d.ts +3 -0
  180. package/dist/esm/components/Inspector/ReduxTab.js +70 -0
  181. package/dist/esm/components/Inspector/SettingsPanel.d.ts +3 -0
  182. package/dist/esm/components/Inspector/SettingsPanel.js +1438 -0
  183. package/dist/esm/components/Inspector/TabBar.d.ts +3 -0
  184. package/dist/esm/components/Inspector/TabBar.js +90 -0
  185. package/dist/esm/components/Inspector/WebViewTab.d.ts +3 -0
  186. package/dist/esm/components/Inspector/WebViewTab.js +752 -0
  187. package/dist/esm/components/InspectorHeader.d.ts +19 -0
  188. package/dist/esm/components/InspectorHeader.js +323 -0
  189. package/dist/esm/components/InspectorTabBar.d.ts +16 -0
  190. package/dist/esm/components/InspectorTabBar.js +84 -0
  191. package/dist/esm/components/JsonViewer.d.ts +4 -1
  192. package/dist/esm/components/JsonViewer.js +111 -172
  193. package/dist/esm/components/LogCard.js +111 -88
  194. package/dist/esm/components/MetaAccordion.d.ts +1 -10
  195. package/dist/esm/components/MetaAccordion.js +23 -21
  196. package/dist/esm/components/NavigationTracker.d.ts +7 -0
  197. package/dist/esm/components/NavigationTracker.js +39 -0
  198. package/dist/esm/components/NetworkIcons.d.ts +6 -0
  199. package/dist/esm/components/NetworkIcons.js +46 -6
  200. package/dist/esm/components/ReduxTabView.d.ts +9 -0
  201. package/dist/esm/components/ReduxTabView.js +50 -0
  202. package/dist/esm/components/ReduxTreeView.js +243 -202
  203. package/dist/esm/components/SegmentedTabs.d.ts +15 -0
  204. package/dist/esm/components/SegmentedTabs.js +47 -0
  205. package/dist/esm/components/SettingsView.d.ts +13 -0
  206. package/dist/esm/components/SettingsView.js +321 -0
  207. package/dist/esm/components/TouchableScale.d.ts +2 -2
  208. package/dist/esm/components/TouchableScale.js +2 -2
  209. package/dist/esm/components/TreeNode.js +2 -2
  210. package/dist/esm/constants/index.js +1 -12
  211. package/dist/esm/constants/version.d.ts +1 -1
  212. package/dist/esm/constants/version.js +1 -1
  213. package/dist/esm/customHooks/analyticsLogger.d.ts +8 -0
  214. package/dist/esm/customHooks/analyticsLogger.js +37 -0
  215. package/dist/esm/customHooks/consoleLogger.js +137 -13
  216. package/dist/esm/customHooks/networkLogger.d.ts +0 -1
  217. package/dist/esm/customHooks/networkLogger.js +0 -1
  218. package/dist/esm/customHooks/reduxLogger.d.ts +2 -9
  219. package/dist/esm/enums/index.d.ts +39 -0
  220. package/dist/esm/enums/index.js +47 -0
  221. package/dist/esm/helpers/index.d.ts +27 -1
  222. package/dist/esm/helpers/index.js +180 -11
  223. package/dist/esm/helpers/settingsStore.d.ts +2 -24
  224. package/dist/esm/i18n/en.json +144 -0
  225. package/dist/esm/i18n/index.d.ts +2 -0
  226. package/dist/esm/i18n/index.js +22 -0
  227. package/dist/esm/i18n/locales/en.json +314 -0
  228. package/dist/esm/index.d.ts +2 -3
  229. package/dist/esm/index.js +207 -4923
  230. package/dist/esm/styles/AppColors.d.ts +148 -0
  231. package/dist/esm/styles/AppColors.js +176 -0
  232. package/dist/esm/styles/common.d.ts +3 -0
  233. package/dist/esm/styles/common.js +197 -0
  234. package/dist/esm/styles/index.d.ts +219 -435
  235. package/dist/esm/styles/index.js +312 -488
  236. package/dist/esm/types/enums.d.ts +9 -0
  237. package/dist/esm/types/enums.js +3 -0
  238. package/dist/esm/types/index.d.ts +4 -111
  239. package/dist/esm/types/index.js +2 -1
  240. package/dist/esm/types/interfaces.d.ts +337 -0
  241. package/dist/esm/types/interfaces.js +1 -0
  242. package/example/App.tsx +88 -1
  243. package/example/android/app/build.gradle +29 -1
  244. package/example/android/app/src/main/java/com/example/MainApplication.kt +25 -0
  245. package/example/android/build.gradle +31 -4
  246. package/example/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  247. package/example/android/gradle.properties +1 -0
  248. package/example/android/settings.gradle +20 -1
  249. package/example/package-lock.json +1 -1
  250. package/package.json +3 -1
@@ -0,0 +1,447 @@
1
+ import React from 'react';
2
+ import { Alert, Animated, Linking, Platform, Pressable, Text, View, } from 'react-native';
3
+ import LinearGradient from 'react-native-linear-gradient';
4
+ import { useInspector } from './InspectorContext';
5
+ import TouchableScale from '../TouchableScale';
6
+ import BrandSquareIcon from '../BrandSquareIcon';
7
+ import styles from '../../styles';
8
+ import { AppColors } from '../../styles/AppColors';
9
+ import { AppFonts } from '../../styles/AppFonts';
10
+ import { METHOD_COLORS } from '../../constants';
11
+ import { LIB_VERSION } from '../../constants';
12
+ import { getStatusColor } from '../../helpers';
13
+ import { getAppName } from '../../helpers';
14
+ import { getBundleIdentifier } from '../../helpers';
15
+ import { formatTime } from '../../helpers';
16
+ import { WhiteBackNavigation, TrashIcon, SettingsIcon, CloseWhite, ChevronIcon, ClockIcon, } from '../NetworkIcons';
17
+ const InspectorHeader = () => {
18
+ const { modalHeightPercent, selected, setSelected, selectedEvent, setSelectedEvent, selectedLog, setSelectedLog, showHeaderInfo, setShowHeaderInfo, updateAvailable, latestNpmVersion, clearAnim, activePulseAnim, unreadPulseAnim, runClearAllWithAnimation, setSettingsPage, closeModal, detailTitle, } = useInspector();
19
+ const headerTopPadding = Platform.OS === 'ios' && modalHeightPercent >= 95 ? 44 : 0;
20
+ return (<LinearGradient colors={[AppColors.purple, AppColors.brandPurple]} style={styles.headerGradient}>
21
+ <View style={{ paddingTop: headerTopPadding, width: '100%' }}>
22
+ <View style={styles.header}>
23
+ <View style={[
24
+ styles.headerLeft,
25
+ {
26
+ flexDirection: 'row',
27
+ alignItems: 'center',
28
+ gap: 16,
29
+ flex: selected == null &&
30
+ selectedEvent == null &&
31
+ selectedLog == null
32
+ ? 5
33
+ : 1,
34
+ },
35
+ ]}>
36
+ <TouchableScale onPress={() => {
37
+ requestAnimationFrame(() => {
38
+ setSelected(null);
39
+ setSelectedEvent(null);
40
+ setSelectedLog(null);
41
+ });
42
+ }} hitSlop={15} style={[
43
+ {
44
+ width: 38,
45
+ height: 38,
46
+ borderRadius: 19,
47
+ alignItems: 'center',
48
+ justifyContent: 'center',
49
+ backgroundColor: `${AppColors.white}2E`,
50
+ borderWidth: 1,
51
+ borderColor: `${AppColors.white}4D`,
52
+ },
53
+ selected == null &&
54
+ selectedEvent == null &&
55
+ selectedLog == null && { display: 'none' },
56
+ ]}>
57
+ {/* Soft outer glow to fake a blurred circle */}
58
+ <View style={{
59
+ position: 'absolute',
60
+ width: 48,
61
+ height: 48,
62
+ borderRadius: 24,
63
+ backgroundColor: `${AppColors.white}1A`,
64
+ }}/>
65
+ <WhiteBackNavigation />
66
+ </TouchableScale>
67
+
68
+ {selected == null &&
69
+ selectedEvent == null &&
70
+ selectedLog == null ? (<TouchableScale onPress={() => setShowHeaderInfo(prev => !prev)} style={{
71
+ flexDirection: 'row',
72
+ alignItems: 'flex-start',
73
+ gap: 10,
74
+ flex: 1,
75
+ }}>
76
+ <View style={{
77
+ width: 46,
78
+ height: 46,
79
+ borderRadius: 12,
80
+ alignItems: 'center',
81
+ justifyContent: 'center',
82
+ backgroundColor: `${AppColors.white}21`,
83
+ borderWidth: 1.5,
84
+ borderColor: `${AppColors.white}40`,
85
+ shadowColor: AppColors.black,
86
+ shadowOpacity: 0.15,
87
+ shadowRadius: 4,
88
+ shadowOffset: { width: 0, height: 2 },
89
+ flexShrink: 0,
90
+ }}>
91
+ <BrandSquareIcon size={42}/>
92
+ </View>
93
+ <View style={{ gap: 2, flex: 1 }}>
94
+ <View style={{ flexDirection: 'row', alignItems: 'center', gap: 6 }}>
95
+ <Text style={[styles.headerTitle]} numberOfLines={1}>
96
+ {getAppName()}
97
+ </Text>
98
+ {updateAvailable && (<Pressable hitSlop={10} onPress={() => Alert.alert('Update Available', `react-native-inapp-inspector v${latestNpmVersion} is available on NPM (installed: v${LIB_VERSION}).`, [
99
+ { text: 'Later', style: 'cancel' },
100
+ {
101
+ text: 'View on NPM',
102
+ onPress: () => Linking.openURL('https://www.npmjs.com/package/react-native-inapp-inspector').catch(() => { }),
103
+ },
104
+ ])} style={{
105
+ alignItems: 'center',
106
+ justifyContent: 'center',
107
+ }}>
108
+ <Animated.View style={{
109
+ width: 8,
110
+ height: 8,
111
+ borderRadius: 4,
112
+ backgroundColor: AppColors.liveGreen,
113
+ borderWidth: 1,
114
+ borderColor: `${AppColors.white}E6`,
115
+ opacity: activePulseAnim,
116
+ transform: [{ scale: unreadPulseAnim }],
117
+ }}/>
118
+ </Pressable>)}
119
+ </View>
120
+ <View style={{
121
+ flexDirection: 'row',
122
+ alignItems: 'center',
123
+ alignSelf: 'flex-start',
124
+ backgroundColor: `${AppColors.white}1A`,
125
+ borderRadius: 10,
126
+ paddingHorizontal: 8,
127
+ paddingVertical: 3,
128
+ gap: 5,
129
+ borderWidth: 1,
130
+ borderColor: `${AppColors.white}26`,
131
+ }}>
132
+ <View style={{
133
+ width: 6,
134
+ height: 6,
135
+ borderRadius: 3,
136
+ backgroundColor: AppColors.liveGreen,
137
+ }}/>
138
+ <Text style={{
139
+ fontFamily: AppFonts.interMedium,
140
+ fontSize: 10,
141
+ color: `${AppColors.white}D9`,
142
+ letterSpacing: 0.2,
143
+ }} numberOfLines={1}>
144
+ {getBundleIdentifier()}
145
+ </Text>
146
+ <Animated.View style={{
147
+ transform: [{ rotate: showHeaderInfo ? '180deg' : '0deg' }],
148
+ marginLeft: 2,
149
+ }}>
150
+ <ChevronIcon color="rgba(255,255,255,0.6)" size={12}/>
151
+ </Animated.View>
152
+ </View>
153
+ {showHeaderInfo && (<View style={{
154
+ flexDirection: 'row',
155
+ alignItems: 'center',
156
+ gap: 6,
157
+ marginTop: 4,
158
+ }}>
159
+ <View style={{
160
+ flexDirection: 'row',
161
+ alignItems: 'center',
162
+ borderRadius: 6,
163
+ overflow: 'hidden',
164
+ borderWidth: 1,
165
+ borderColor: `${AppColors.white}2E`,
166
+ }}>
167
+ <View style={{
168
+ paddingHorizontal: 5,
169
+ paddingVertical: 2,
170
+ backgroundColor: `${AppColors.white}47`,
171
+ }}>
172
+ <Text style={{
173
+ fontFamily: AppFonts.interBold,
174
+ fontSize: 9,
175
+ color: AppColors.white,
176
+ letterSpacing: 0.3,
177
+ }}>
178
+ {Platform.OS === 'ios' ? 'iOS' : 'Android'}
179
+ </Text>
180
+ </View>
181
+ <View style={{
182
+ paddingHorizontal: 5,
183
+ paddingVertical: 2,
184
+ backgroundColor: `${AppColors.white}1F`,
185
+ }}>
186
+ <Text style={{
187
+ fontFamily: AppFonts.interMedium,
188
+ fontSize: 9.5,
189
+ color: `${AppColors.white}EB`,
190
+ }}>
191
+ {String(Platform.Version)}
192
+ </Text>
193
+ </View>
194
+ </View>
195
+ <View style={{
196
+ flexDirection: 'row',
197
+ alignItems: 'center',
198
+ borderRadius: 6,
199
+ overflow: 'hidden',
200
+ borderWidth: 1,
201
+ borderColor: `${AppColors.white}2E`,
202
+ }}>
203
+ <View style={{
204
+ paddingHorizontal: 5,
205
+ paddingVertical: 2,
206
+ backgroundColor: `${AppColors.white}47`,
207
+ }}>
208
+ <Text style={{
209
+ fontFamily: AppFonts.interBold,
210
+ fontSize: 9,
211
+ color: AppColors.white,
212
+ letterSpacing: 0.3,
213
+ }}>
214
+ npm
215
+ </Text>
216
+ </View>
217
+ <View style={{
218
+ paddingHorizontal: 5,
219
+ paddingVertical: 2,
220
+ backgroundColor: `${AppColors.white}1F`,
221
+ }}>
222
+ <Text style={{
223
+ fontFamily: AppFonts.interMedium,
224
+ fontSize: 9.5,
225
+ color: `${AppColors.white}EB`,
226
+ }}>
227
+ v{LIB_VERSION}
228
+ </Text>
229
+ </View>
230
+ </View>
231
+ </View>)}
232
+ </View>
233
+ </TouchableScale>) : null}
234
+ </View>
235
+
236
+ {(selected != null ||
237
+ selectedEvent != null ||
238
+ selectedLog != null) && (<View style={styles.headerCenter}>
239
+ {selected != null ? (<View style={styles.headerDetailCenter}>
240
+ <View style={styles.headerDetailRow}>
241
+ <View style={[
242
+ styles.headerMethodBadge,
243
+ {
244
+ backgroundColor: METHOD_COLORS[selected.method] ??
245
+ AppColors.grayText,
246
+ },
247
+ ]}>
248
+ <Text style={styles.headerMethodText}>
249
+ {selected.method}
250
+ </Text>
251
+ </View>
252
+ <Text style={styles.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
253
+ {detailTitle}
254
+ </Text>
255
+ </View>
256
+ <View style={styles.headerDetailSubRow}>
257
+ <View style={{
258
+ flexDirection: 'row',
259
+ alignItems: 'center',
260
+ gap: 5,
261
+ paddingHorizontal: 8,
262
+ paddingVertical: 3,
263
+ borderRadius: 20,
264
+ backgroundColor: `${getStatusColor(selected.status)}26`,
265
+ borderWidth: 1,
266
+ borderColor: `${getStatusColor(selected.status)}55`,
267
+ }}>
268
+ <View style={[
269
+ styles.headerStatusDot,
270
+ {
271
+ backgroundColor: getStatusColor(selected.status),
272
+ },
273
+ ]}/>
274
+ <Text style={[
275
+ styles.headerSubTitle,
276
+ { fontFamily: AppFonts.interBold },
277
+ ]}>
278
+ {selected.status === 0
279
+ ? 'Failed'
280
+ : selected.status ?? 'Pending'}
281
+ </Text>
282
+ </View>
283
+ <View style={{
284
+ flexDirection: 'row',
285
+ alignItems: 'center',
286
+ gap: 4,
287
+ paddingHorizontal: 8,
288
+ paddingVertical: 3,
289
+ borderRadius: 20,
290
+ backgroundColor: `${AppColors.white}29`,
291
+ }}>
292
+ <ClockIcon color={AppColors.white} size={11}/>
293
+ <Text style={styles.headerSubTitle}>
294
+ {selected.duration != null
295
+ ? `${selected.duration}ms`
296
+ : '—'}
297
+ </Text>
298
+ </View>
299
+ </View>
300
+ </View>) : selectedEvent != null ? (<View style={styles.headerDetailCenter}>
301
+ <View style={styles.headerDetailRow}>
302
+ <View style={[
303
+ styles.headerMethodBadge,
304
+ {
305
+ backgroundColor: selectedEvent.source === 'firebase'
306
+ ? `${AppColors.firebaseOrange}4D`
307
+ : `${AppColors.purple}4D`,
308
+ },
309
+ ]}>
310
+ <Text style={styles.headerMethodText}>
311
+ {selectedEvent.source === 'firebase'
312
+ ? 'FB'
313
+ : 'MAN'}
314
+ </Text>
315
+ </View>
316
+ <Text style={styles.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
317
+ {selectedEvent.name}
318
+ </Text>
319
+ </View>
320
+ <View style={styles.headerDetailSubRow}>
321
+ <View style={[
322
+ styles.headerStatusDot,
323
+ {
324
+ backgroundColor: selectedEvent.source === 'firebase'
325
+ ? AppColors.firebaseOrange
326
+ : AppColors.purple,
327
+ },
328
+ ]}/>
329
+ <Text style={styles.headerSubTitle}>
330
+ {Object.keys(selectedEvent.params).length} param
331
+ {Object.keys(selectedEvent.params).length !== 1
332
+ ? 's'
333
+ : ''}
334
+ {' · '}
335
+ {selectedEvent.source}
336
+ </Text>
337
+ </View>
338
+ </View>) : selectedLog != null ? (<View style={styles.headerDetailCenter}>
339
+ <View style={styles.headerDetailRow}>
340
+ <View style={[
341
+ styles.headerMethodBadge,
342
+ {
343
+ backgroundColor: selectedLog.type === 'error'
344
+ ? `${AppColors.errorColor}4D`
345
+ : selectedLog.type === 'warn'
346
+ ? `${AppColors.lightOrange}4D`
347
+ : `${AppColors.purple}4D`,
348
+ },
349
+ ]}>
350
+ <Text style={styles.headerMethodText}>
351
+ {selectedLog.type.toUpperCase()}
352
+ </Text>
353
+ </View>
354
+ <Text style={styles.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
355
+ console.
356
+ {(selectedLog.sourceMethod) ||
357
+ selectedLog.type ||
358
+ 'log'}
359
+ </Text>
360
+ </View>
361
+ <View style={styles.headerDetailSubRow}>
362
+ <View style={{
363
+ flexDirection: 'row',
364
+ alignItems: 'center',
365
+ gap: 4,
366
+ paddingHorizontal: 8,
367
+ paddingVertical: 3,
368
+ borderRadius: 20,
369
+ backgroundColor: `${AppColors.white}29`,
370
+ }}>
371
+ <ClockIcon color={AppColors.white} size={11}/>
372
+ <Text style={styles.headerSubTitle}>
373
+ {formatTime(selectedLog.timestamp)}
374
+ </Text>
375
+ </View>
376
+ </View>
377
+ </View>) : null}
378
+ </View>)}
379
+
380
+ <View style={[
381
+ styles.headerRight,
382
+ selected == null &&
383
+ selectedEvent == null &&
384
+ selectedLog == null && {
385
+ flexShrink: 0,
386
+ minWidth: 116,
387
+ },
388
+ ]}>
389
+ {selected == null &&
390
+ selectedEvent == null &&
391
+ selectedLog == null && (<TouchableScale onPress={() => {
392
+ Alert.alert('Clear Everything', 'This clears all tabs — APIs, Logs, Analytics and Redux timeline. Continue?', [
393
+ { text: 'Cancel', style: 'cancel' },
394
+ {
395
+ text: 'Clear All',
396
+ onPress: runClearAllWithAnimation,
397
+ style: 'destructive',
398
+ },
399
+ ]);
400
+ }} hitSlop={15} style={[
401
+ styles.closeButtonSquare,
402
+ {
403
+ marginRight: 8,
404
+ backgroundColor: `${AppColors.white}26`,
405
+ },
406
+ ]}>
407
+ <Animated.View style={{
408
+ transform: [
409
+ {
410
+ rotate: clearAnim.interpolate({
411
+ inputRange: [0, 1],
412
+ outputRange: ['0deg', '-25deg'],
413
+ }),
414
+ },
415
+ {
416
+ scale: clearAnim.interpolate({
417
+ inputRange: [0, 0.5, 1],
418
+ outputRange: [1, 1.25, 1],
419
+ }),
420
+ },
421
+ ],
422
+ }}>
423
+ <TrashIcon color={AppColors.white} size={16}/>
424
+ </Animated.View>
425
+ </TouchableScale>)}
426
+
427
+ {selected == null &&
428
+ selectedEvent == null &&
429
+ selectedLog == null && (<TouchableScale onPress={() => setSettingsPage('main')} hitSlop={15} style={[
430
+ styles.closeButtonSquare,
431
+ {
432
+ marginRight: 8,
433
+ backgroundColor: `${AppColors.white}26`,
434
+ },
435
+ ]}>
436
+ <SettingsIcon color={AppColors.white} size={16}/>
437
+ </TouchableScale>)}
438
+
439
+ <TouchableScale onPress={closeModal} hitSlop={15} style={styles.closeButtonSquare}>
440
+ <CloseWhite size={16}/>
441
+ </TouchableScale>
442
+ </View>
443
+ </View>
444
+ </View>
445
+ </LinearGradient>);
446
+ };
447
+ export default InspectorHeader;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const LogDetail: () => React.JSX.Element;
3
+ export default LogDetail;