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
@@ -7,9 +7,7 @@ const react_1 = __importDefault(require("react"));
7
7
  const react_native_1 = require("react-native");
8
8
  // Helpers
9
9
  const helpers_1 = require("../helpers");
10
- const HighlightText = ({ text, search, style, highlightStyle, detectLinks, ...rest }) => {
11
- const hasNumberOfLines = 'numberOfLines' in rest;
12
- const numLines = hasNumberOfLines ? rest.numberOfLines : 1;
10
+ const HighlightText = react_1.default.memo(function HighlightText({ text, search, style, highlightStyle, detectLinks, numberOfLines, ...rest }) {
13
11
  // Regex to detect absolute URLs
14
12
  const URL_REGEX = /(https?:\/\/[^\s]+)/g;
15
13
  const renderNormalOrHighlighted = (subText, keyPrefix) => {
@@ -26,7 +24,7 @@ const HighlightText = ({ text, search, style, highlightStyle, detectLinks, ...re
26
24
  };
27
25
  if (detectLinks && text) {
28
26
  const parts = text.split(URL_REGEX);
29
- return (<react_native_1.Text style={style} numberOfLines={numLines} {...rest}>
27
+ return (<react_native_1.Text style={style} numberOfLines={numberOfLines} {...rest}>
30
28
  {parts.map((part, i) => {
31
29
  if (part.match(URL_REGEX)) {
32
30
  return (<react_native_1.Text key={`link-${i}`} style={{
@@ -43,15 +41,15 @@ const HighlightText = ({ text, search, style, highlightStyle, detectLinks, ...re
43
41
  </react_native_1.Text>);
44
42
  }
45
43
  if (!search)
46
- return (<react_native_1.Text style={style} numberOfLines={numLines} {...rest}>
44
+ return (<react_native_1.Text style={style} numberOfLines={numberOfLines} {...rest}>
47
45
  {text}
48
46
  </react_native_1.Text>);
49
47
  const regex = new RegExp(`(${(0, helpers_1.escapeRegex)(search)})`, 'gi');
50
48
  const parts = text.split(regex);
51
- return (<react_native_1.Text style={style} numberOfLines={numLines} {...rest}>
49
+ return (<react_native_1.Text style={style} numberOfLines={numberOfLines} {...rest}>
52
50
  {parts.map((part, i) => part.toLowerCase() === search.toLowerCase() ? (<react_native_1.Text key={i} style={highlightStyle}>
53
51
  {part}
54
52
  </react_native_1.Text>) : (<react_native_1.Text key={i}>{part}</react_native_1.Text>))}
55
53
  </react_native_1.Text>);
56
- };
54
+ });
57
55
  exports.default = HighlightText;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const AnalyticsTab: () => React.JSX.Element;
3
+ export default AnalyticsTab;
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const react_1 = __importStar(require("react"));
40
+ const react_native_1 = require("react-native");
41
+ const InspectorContext_1 = require("./InspectorContext");
42
+ const AnalyticsEventCard_1 = __importDefault(require("../AnalyticsEventCard"));
43
+ const AnalyticsDetail_1 = __importDefault(require("../AnalyticsDetail"));
44
+ const EndOfListFooter_1 = __importDefault(require("../EndOfListFooter"));
45
+ const styles_1 = __importDefault(require("../../styles"));
46
+ const AppColors_1 = require("../../styles/AppColors");
47
+ const analyticsLogger_1 = require("../../customHooks/analyticsLogger");
48
+ const NetworkIcons_1 = require("../NetworkIcons");
49
+ const AnalyticsHeader = () => {
50
+ const { filteredAnalyticsEvents, analyticsHeaderExpanded, setAnalyticsHeaderExpanded, } = (0, InspectorContext_1.useInspector)();
51
+ const keyExtractor = (0, react_1.useCallback)((item, index) => item?.id?.toString() ?? index.toString(), []);
52
+ const userId = (0, analyticsLogger_1.getCurrentUserId)();
53
+ const userProperties = (0, analyticsLogger_1.getCurrentUserProperties)();
54
+ const defaultParams = (0, analyticsLogger_1.getDefaultEventParameters)();
55
+ const isTrackingEnabled = (0, analyticsLogger_1.getCollectionEnabled)();
56
+ const hasUserProps = Object.keys(userProperties).length > 0;
57
+ const hasDefaultParams = Object.keys(defaultParams).length > 0;
58
+ const totalEvents = filteredAnalyticsEvents.length;
59
+ return (<react_native_1.View style={styles_1.default.analyticsHeaderCard}>
60
+ <react_native_1.View style={[styles_1.default.analyticsHeaderTop, !analyticsHeaderExpanded && { marginBottom: 0 }]}>
61
+ <react_native_1.View style={{ flex: 1 }}>
62
+ <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6 }}>
63
+ <react_native_1.Text style={styles_1.default.analyticsHeaderTitle}>Session Info</react_native_1.Text>
64
+ <react_native_1.View style={[
65
+ styles_1.default.statusDot,
66
+ { backgroundColor: isTrackingEnabled ? AppColors_1.AppColors.greenColor : AppColors_1.AppColors.errorColor }
67
+ ]}/>
68
+ <react_native_1.Text style={styles_1.default.statusText}>
69
+ {isTrackingEnabled ? 'Active' : 'Paused'}
70
+ </react_native_1.Text>
71
+ </react_native_1.View>
72
+ <react_native_1.Text style={styles_1.default.analyticsHeaderSubtitle} numberOfLines={1}>
73
+ {userId ? `User ID: ${userId}` : 'Anonymous Session'}
74
+ </react_native_1.Text>
75
+ </react_native_1.View>
76
+
77
+ <react_native_1.TouchableOpacity style={styles_1.default.analyticsHeaderToggle} activeOpacity={0.7} onPress={() => {
78
+ (0, InspectorContext_1.animateNextLayout)();
79
+ setAnalyticsHeaderExpanded(!analyticsHeaderExpanded);
80
+ }}>
81
+ <react_native_1.Text style={styles_1.default.analyticsHeaderToggleText}>
82
+ {analyticsHeaderExpanded ? 'Collapse' : 'Expand'}
83
+ </react_native_1.Text>
84
+ </react_native_1.TouchableOpacity>
85
+ </react_native_1.View>
86
+
87
+ {analyticsHeaderExpanded && (<>
88
+ {/* Stats Row */}
89
+ <react_native_1.View style={styles_1.default.analyticsStatsRow}>
90
+ <react_native_1.View style={styles_1.default.analyticsStatBox}>
91
+ <react_native_1.Text style={styles_1.default.analyticsStatValue}>{totalEvents}</react_native_1.Text>
92
+ <react_native_1.Text style={styles_1.default.analyticsStatLabel}>Events</react_native_1.Text>
93
+ </react_native_1.View>
94
+ <react_native_1.View style={styles_1.default.analyticsStatBox}>
95
+ <react_native_1.Text style={styles_1.default.analyticsStatValue}>
96
+ {Object.keys(userProperties).length}
97
+ </react_native_1.Text>
98
+ <react_native_1.Text style={styles_1.default.analyticsStatLabel}>User Props</react_native_1.Text>
99
+ </react_native_1.View>
100
+ <react_native_1.View style={styles_1.default.analyticsStatBox}>
101
+ <react_native_1.Text style={styles_1.default.analyticsStatValue}>
102
+ {Object.keys(defaultParams).length}
103
+ </react_native_1.Text>
104
+ <react_native_1.Text style={styles_1.default.analyticsStatLabel}>Defaults</react_native_1.Text>
105
+ </react_native_1.View>
106
+ </react_native_1.View>
107
+
108
+ {/* Details Section */}
109
+ {(hasUserProps || hasDefaultParams) && (<react_native_1.View style={styles_1.default.analyticsHeaderDetails}>
110
+ {hasUserProps && (<react_native_1.View style={{ marginBottom: 10 }}>
111
+ <react_native_1.Text style={styles_1.default.detailsGroupTitle}>Active User Properties</react_native_1.Text>
112
+ {Object.entries(userProperties).map(([k, v]) => (<react_native_1.View key={k} style={styles_1.default.detailsRow}>
113
+ <react_native_1.Text style={styles_1.default.detailsKey} selectable={true}>{k}</react_native_1.Text>
114
+ <react_native_1.Text style={styles_1.default.detailsValue} selectable={true}>{String(v)}</react_native_1.Text>
115
+ </react_native_1.View>))}
116
+ </react_native_1.View>)}
117
+
118
+ {hasDefaultParams && (<react_native_1.View>
119
+ <react_native_1.Text style={styles_1.default.detailsGroupTitle}>Default Event Parameters</react_native_1.Text>
120
+ {Object.entries(defaultParams).map(([k, v]) => (<react_native_1.View key={k} style={styles_1.default.detailsRow}>
121
+ <react_native_1.Text style={styles_1.default.detailsKey} selectable={true}>{k}</react_native_1.Text>
122
+ <react_native_1.Text style={styles_1.default.detailsValue} selectable={true}>{String(v)}</react_native_1.Text>
123
+ </react_native_1.View>))}
124
+ </react_native_1.View>)}
125
+ </react_native_1.View>)}
126
+ </>)}
127
+ </react_native_1.View>);
128
+ };
129
+ const AnalyticsTab = () => {
130
+ const { analyticsSearch, setAnalyticsSearch, handleDelete, filteredAnalyticsEvents, selectedEvent, setSelectedEvent, newEventIds, logRouteMapRef, isAnalyticsLayoutReady, setIsAnalyticsLayoutReady, isAnalyticsPaused, setIsAnalyticsPaused, } = (0, InspectorContext_1.useInspector)();
131
+ const renderItem = (0, react_1.useCallback)(({ item, index }) => {
132
+ const prev = filteredAnalyticsEvents[index + 1];
133
+ const next = filteredAnalyticsEvents[index - 1];
134
+ const msSincePrev = prev
135
+ ? item.timestamp - prev.timestamp
136
+ : undefined;
137
+ const thisMin = Math.floor(item.timestamp / 60000);
138
+ const nextMin = next
139
+ ? Math.floor(next.timestamp / 60000)
140
+ : -1;
141
+ const showTimestamp = index === 0 || thisMin !== nextMin;
142
+ return (<AnalyticsEventCard_1.default event={item} onPress={() => {
143
+ (0, InspectorContext_1.animateNextLayout)();
144
+ setSelectedEvent(item);
145
+ }} isNew={newEventIds.has(item.id)} searchStr={analyticsSearch} isFirst={index === 0} isLast={index === filteredAnalyticsEvents.length - 1} msSincePrev={msSincePrev} showTimestamp={showTimestamp} computedScreenName={(() => {
146
+ if (!item)
147
+ return '';
148
+ const rawScreenName = item.screenName ||
149
+ item.screenClass ||
150
+ item.pageTitle ||
151
+ item.pageLocation ||
152
+ item.params?.firebase_screen ||
153
+ item.params?.screen_name ||
154
+ item.params?.firebase_screen_class ||
155
+ item.params?.screen_class;
156
+ let screenName = typeof rawScreenName === 'string'
157
+ ? rawScreenName
158
+ : (rawScreenName ? JSON.stringify(rawScreenName) : '');
159
+ const routeInfo = logRouteMapRef.current.get(item.id + 1000000);
160
+ if (!screenName) {
161
+ if (routeInfo &&
162
+ routeInfo.path !== 'Navigators') {
163
+ const parts = routeInfo.path.split(' ➔ ');
164
+ screenName = parts[parts.length - 1];
165
+ }
166
+ }
167
+ return screenName;
168
+ })()}/>);
169
+ }, [filteredAnalyticsEvents, analyticsSearch, newEventIds, setSelectedEvent]);
170
+ const keyExtractor = (0, react_1.useCallback)((item, index) => item?.id?.toString() ?? index.toString(), []);
171
+ return (<>
172
+ {/* ─── Search + Shared Toolbar for Analytics ──────────────────────── */}
173
+ {selectedEvent == null && (<react_native_1.View style={[
174
+ styles_1.default.toolbarRow,
175
+ { marginTop: 12, marginBottom: 8 },
176
+ ]}>
177
+ <react_native_1.View style={styles_1.default.searchContainer}>
178
+ <NetworkIcons_1.SearchIcon color={AppColors_1.AppColors.grayTextWeak} size={16}/>
179
+ <react_native_1.TextInput placeholder="Search events..." placeholderTextColor={AppColors_1.AppColors.grayTextWeak} value={analyticsSearch} onChangeText={setAnalyticsSearch} style={styles_1.default.searchInput} autoCorrect={false} autoCapitalize="none"/>
180
+ {analyticsSearch.length > 0 && (<react_native_1.Pressable onPress={() => setAnalyticsSearch('')} hitSlop={10} style={styles_1.default.clearBtn}>
181
+ <NetworkIcons_1.ClearIcon color={AppColors_1.AppColors.grayTextWeak} size={14}/>
182
+ </react_native_1.Pressable>)}
183
+ </react_native_1.View>
184
+ <react_native_1.View style={styles_1.default.toolbarRight}>
185
+ <react_native_1.TouchableOpacity style={[
186
+ styles_1.default.toolbarBtn,
187
+ isAnalyticsPaused && {
188
+ borderColor: `${AppColors_1.AppColors.darkOrange}50`,
189
+ backgroundColor: `${AppColors_1.AppColors.darkOrange}18`,
190
+ },
191
+ ]} onPress={() => setIsAnalyticsPaused(p => !p)} hitSlop={6}>
192
+ <NetworkIcons_1.HeaderPauseIcon isPaused={isAnalyticsPaused} color={isAnalyticsPaused
193
+ ? AppColors_1.AppColors.darkOrange
194
+ : AppColors_1.AppColors.grayTextStrong} size={16}/>
195
+ </react_native_1.TouchableOpacity>
196
+ <react_native_1.TouchableOpacity style={[
197
+ styles_1.default.toolbarBtn,
198
+ {
199
+ borderColor: `${AppColors_1.AppColors.errorColor}38`,
200
+ backgroundColor: `${AppColors_1.AppColors.errorColor}0F`,
201
+ },
202
+ ]} onPress={handleDelete} hitSlop={6}>
203
+ <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={15}/>
204
+ </react_native_1.TouchableOpacity>
205
+ </react_native_1.View>
206
+ </react_native_1.View>)}
207
+
208
+ <react_native_1.View style={{ flex: 1 }} onLayout={() => setIsAnalyticsLayoutReady(true)}>
209
+ {selectedEvent != null ? (<AnalyticsDetail_1.default event={selectedEvent}/>) : isAnalyticsLayoutReady ? (<react_native_1.FlatList data={filteredAnalyticsEvents} keyExtractor={keyExtractor} ListHeaderComponent={AnalyticsHeader} renderItem={renderItem} initialNumToRender={20} maxToRenderPerBatch={20} windowSize={5} removeClippedSubviews={false} ListEmptyComponent={<react_native_1.View style={styles_1.default.emptyContainer}>
210
+ <react_native_1.View style={styles_1.default.emptyIconWrap}>
211
+ <NetworkIcons_1.EmptyRadarIcon color={AppColors_1.AppColors.purple} size={32}/>
212
+ </react_native_1.View>
213
+ <react_native_1.Text style={styles_1.default.emptyTitle}>
214
+ {analyticsSearch.length > 0
215
+ ? 'No matching events'
216
+ : 'No analytics events yet'}
217
+ </react_native_1.Text>
218
+ <react_native_1.Text style={styles_1.default.emptySub}>
219
+ {analyticsSearch.length > 0
220
+ ? 'Try adjusting your search.'
221
+ : 'Call setupAnalyticsLogger(analytics()) at app start.'}
222
+ </react_native_1.Text>
223
+ </react_native_1.View>} ListFooterComponent={filteredAnalyticsEvents.length > 0 ? (<EndOfListFooter_1.default count={filteredAnalyticsEvents.length} label="events"/>) : null} contentContainerStyle={[
224
+ styles_1.default.listContent,
225
+ filteredAnalyticsEvents.length === 0 && {
226
+ flexGrow: 1,
227
+ },
228
+ ]} keyboardShouldPersistTaps="handled"/>) : null}
229
+ </react_native_1.View>
230
+ </>);
231
+ };
232
+ exports.default = AnalyticsTab;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ConsoleTab: () => React.JSX.Element;
3
+ export default ConsoleTab;