react-native-inapp-inspector 1.1.24 → 1.1.26
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.
- package/android/build.gradle +36 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.java +114 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorPackage.java +28 -0
- package/dist/commonjs/components/AnalyticsEventCard.js +94 -88
- package/dist/commonjs/components/ConsoleLogCard.js +49 -25
- package/dist/commonjs/components/ErrorBoundary.d.ts +1 -1
- package/dist/commonjs/components/ErrorBoundary.js +9 -145
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.d.ts +7 -0
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +1002 -0
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +637 -10
- package/dist/commonjs/components/Inspector/BundleTab.d.ts +1 -1
- package/dist/commonjs/components/Inspector/BundleTab.js +826 -406
- package/dist/commonjs/components/Inspector/CrashDetail.d.ts +3 -0
- package/dist/commonjs/components/Inspector/CrashDetail.js +796 -0
- package/dist/commonjs/components/Inspector/CrashFilterModal.d.ts +20 -0
- package/dist/commonjs/components/Inspector/CrashFilterModal.js +597 -0
- package/dist/commonjs/components/Inspector/CrashTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/CrashTab.js +727 -0
- package/dist/commonjs/components/Inspector/InspectorContext.js +6 -1
- package/dist/commonjs/components/Inspector/InspectorHeader.js +65 -28
- package/dist/commonjs/components/Inspector/LogDetail.js +227 -114
- package/dist/commonjs/components/Inspector/MainScreen.js +13 -4
- package/dist/commonjs/components/Inspector/NetworkDetail.js +131 -81
- package/dist/commonjs/components/Inspector/PerformanceTab.js +20 -10
- package/dist/commonjs/components/Inspector/SettingsPanel.js +90 -1
- package/dist/commonjs/components/Inspector/TabBar.js +15 -3
- package/dist/commonjs/components/NetworkIcons.d.ts +25 -0
- package/dist/commonjs/components/NetworkIcons.js +188 -1
- package/dist/commonjs/components/SegmentedTabs.js +33 -23
- package/dist/commonjs/components/TreeNode.js +13 -12
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/analyticsLogger.js +70 -44
- package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +5 -1
- package/dist/commonjs/customHooks/bundleAnalyzer.js +497 -126
- package/dist/commonjs/customHooks/consoleLogger.d.ts +1 -0
- package/dist/commonjs/customHooks/consoleLogger.js +153 -51
- package/dist/commonjs/customHooks/crashHandler.d.ts +64 -0
- package/dist/commonjs/customHooks/crashHandler.js +681 -0
- package/dist/commonjs/customHooks/networkLogger.js +74 -49
- package/dist/commonjs/customHooks/performanceTracker.d.ts +8 -0
- package/dist/commonjs/customHooks/performanceTracker.js +44 -3
- package/dist/commonjs/decorators/index.d.ts +49 -0
- package/dist/commonjs/decorators/index.js +142 -0
- package/dist/commonjs/helpers/gaAnalyticsRegistry.d.ts +18 -0
- package/dist/commonjs/helpers/gaAnalyticsRegistry.js +174 -0
- package/dist/commonjs/helpers/index.d.ts +7 -4
- package/dist/commonjs/helpers/index.js +102 -64
- package/dist/commonjs/i18n/locales/en.json +182 -4
- package/dist/commonjs/index.d.ts +6 -0
- package/dist/commonjs/index.js +310 -8
- package/dist/commonjs/styles/index.d.ts +4 -1
- package/dist/commonjs/styles/index.js +22 -19
- package/dist/commonjs/types/enums.d.ts +156 -9
- package/dist/commonjs/types/enums.js +139 -2
- package/dist/commonjs/types/interfaces.d.ts +70 -1
- package/dist/esm/components/AnalyticsEventCard.js +95 -89
- package/dist/esm/components/ConsoleLogCard.js +49 -25
- package/dist/esm/components/ErrorBoundary.d.ts +1 -1
- package/dist/esm/components/ErrorBoundary.js +10 -113
- package/dist/esm/components/Inspector/AnalyticsFilterModal.d.ts +7 -0
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +964 -0
- package/dist/esm/components/Inspector/AnalyticsTab.js +639 -12
- package/dist/esm/components/Inspector/BundleTab.d.ts +1 -1
- package/dist/esm/components/Inspector/BundleTab.js +827 -407
- package/dist/esm/components/Inspector/CrashDetail.d.ts +3 -0
- package/dist/esm/components/Inspector/CrashDetail.js +758 -0
- package/dist/esm/components/Inspector/CrashFilterModal.d.ts +20 -0
- package/dist/esm/components/Inspector/CrashFilterModal.js +557 -0
- package/dist/esm/components/Inspector/CrashTab.d.ts +3 -0
- package/dist/esm/components/Inspector/CrashTab.js +689 -0
- package/dist/esm/components/Inspector/InspectorContext.js +1 -0
- package/dist/esm/components/Inspector/InspectorHeader.js +66 -29
- package/dist/esm/components/Inspector/LogDetail.js +227 -114
- package/dist/esm/components/Inspector/MainScreen.js +14 -5
- package/dist/esm/components/Inspector/NetworkDetail.js +132 -49
- package/dist/esm/components/Inspector/PerformanceTab.js +20 -10
- package/dist/esm/components/Inspector/SettingsPanel.js +91 -2
- package/dist/esm/components/Inspector/TabBar.js +16 -4
- package/dist/esm/components/NetworkIcons.d.ts +25 -0
- package/dist/esm/components/NetworkIcons.js +161 -0
- package/dist/esm/components/SegmentedTabs.js +33 -23
- package/dist/esm/components/TreeNode.js +13 -12
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/analyticsLogger.js +70 -44
- package/dist/esm/customHooks/bundleAnalyzer.d.ts +5 -1
- package/dist/esm/customHooks/bundleAnalyzer.js +493 -125
- package/dist/esm/customHooks/consoleLogger.d.ts +1 -0
- package/dist/esm/customHooks/consoleLogger.js +151 -50
- package/dist/esm/customHooks/crashHandler.d.ts +64 -0
- package/dist/esm/customHooks/crashHandler.js +659 -0
- package/dist/esm/customHooks/networkLogger.js +74 -49
- package/dist/esm/customHooks/performanceTracker.d.ts +8 -0
- package/dist/esm/customHooks/performanceTracker.js +38 -1
- package/dist/esm/decorators/index.d.ts +49 -0
- package/dist/esm/decorators/index.js +137 -0
- package/dist/esm/helpers/gaAnalyticsRegistry.d.ts +18 -0
- package/dist/esm/helpers/gaAnalyticsRegistry.js +169 -0
- package/dist/esm/helpers/index.d.ts +7 -4
- package/dist/esm/helpers/index.js +100 -63
- package/dist/esm/i18n/locales/en.json +182 -4
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +262 -8
- package/dist/esm/styles/index.d.ts +4 -1
- package/dist/esm/styles/index.js +22 -19
- package/dist/esm/types/enums.d.ts +156 -9
- package/dist/esm/types/enums.js +138 -3
- package/dist/esm/types/interfaces.d.ts +70 -1
- package/ios/NetworkInspectorModule.h +6 -0
- package/ios/NetworkInspectorModule.m +125 -0
- package/package.json +5 -2
- package/react-native-inapp-inspector.podspec +18 -0
package/dist/commonjs/index.js
CHANGED
|
@@ -36,7 +36,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.getLastActionForReducer = exports.clearActionHistory = exports.getActionHistory = exports.subscribeReduxState = exports.getReduxState = exports.inspectorReduxMiddleware = exports.connectReduxStore = exports.ErrorBoundary = exports.getCollectionEnabled = exports.getDefaultEventParameters = exports.getCurrentUserId = exports.getCurrentUserProperties = exports.clearAnalyticsEvents = exports.subscribeAnalyticsEvents = exports.logAnalyticsEvent = exports.setupAnalyticsLogger = exports.subscribeConsoleLogs = exports.clearConsoleLogs = exports.setupConsoleLogger = exports.addAxiosInterceptors = exports.subscribeNetworkLogs = exports.clearNetworkLogs = exports.setupNetworkLogger = void 0;
|
|
39
|
+
exports.ActiveTab = exports.InspectCatch = exports.InspectTrackTime = exports.InspectLog = exports.getPerformanceEvents = exports.subscribePerformanceEvents = exports.clearPerformanceEvents = exports.logPerformanceEvent = exports.usePerformanceTracker = exports.registerGAPlugin = exports.getEventCategory = exports.getLastActionForReducer = exports.clearActionHistory = exports.getActionHistory = exports.subscribeReduxState = exports.getReduxState = exports.inspectorReduxMiddleware = exports.connectReduxStore = exports.ErrorBoundary = exports.CrashTab = exports.computeCrashFingerprint = exports.recordUserActionBreadcrumb = exports.recordReduxBreadcrumb = exports.recordNetworkBreadcrumb = exports.recordNavigationBreadcrumb = exports.addCrashBreadcrumb = exports.recordCustomCrash = exports.parseCrashStackTrace = exports.exportCrashReport = exports.simulateTestCrash = exports.clearCrashRecords = exports.getCrashRecords = exports.emitCrashEvent = exports.subscribeCrashEvents = exports.setupGlobalCrashHandler = exports.getCollectionEnabled = exports.getDefaultEventParameters = exports.getCurrentUserId = exports.getCurrentUserProperties = exports.clearAnalyticsEvents = exports.subscribeAnalyticsEvents = exports.logAnalyticsEvent = exports.setupAnalyticsLogger = exports.subscribeConsoleLogs = exports.clearConsoleLogs = exports.setupConsoleLogger = exports.addAxiosInterceptors = exports.subscribeNetworkLogs = exports.clearNetworkLogs = exports.setupNetworkLogger = void 0;
|
|
40
|
+
exports.BreadcrumbType = exports.CrashFilterType = exports.CrashDetailSubTab = exports.CrashExportFormat = exports.CrashType = exports.PerformanceSubTab = exports.BundleSubTab = exports.DiffResultType = exports.StackFrameType = exports.GAEventCategory = exports.AnalyticsEventSource = exports.ConsoleLogType = exports.LogFilter = exports.SettingsSubTab = exports.SettingsPage = exports.ModalAnimationType = exports.LocalFilter = exports.SortOrder = exports.StatusFilter = exports.Method = void 0;
|
|
40
41
|
const react_1 = __importStar(require("react"));
|
|
41
42
|
const react_native_1 = require("react-native");
|
|
42
43
|
const native_1 = require("@react-navigation/native");
|
|
@@ -55,6 +56,8 @@ const networkLogger_1 = require("./customHooks/networkLogger");
|
|
|
55
56
|
// Console
|
|
56
57
|
const consoleLogger_1 = require("./customHooks/consoleLogger");
|
|
57
58
|
const logFilters_1 = require("./customHooks/logFilters");
|
|
59
|
+
// Crash Protection
|
|
60
|
+
const crashHandler_1 = require("./customHooks/crashHandler");
|
|
58
61
|
const analyticsLogger_1 = require("./customHooks/analyticsLogger");
|
|
59
62
|
const reduxLogger_1 = require("./customHooks/reduxLogger");
|
|
60
63
|
const constants_1 = require("./constants");
|
|
@@ -128,6 +131,14 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
128
131
|
const latestAnalyticsEventsRef = (0, react_1.useRef)([]);
|
|
129
132
|
const [lastReadLogsCount, setLastReadLogsCount] = (0, react_1.useState)(0);
|
|
130
133
|
const [lastReadApisCount, setLastReadApisCount] = (0, react_1.useState)(0);
|
|
134
|
+
const [lastReadCrashesCount, setLastReadCrashesCount] = (0, react_1.useState)(0);
|
|
135
|
+
// ─── Crash state ───────────────────────────────────────────────────────────
|
|
136
|
+
const [crashRecords, setCrashRecords] = (0, react_1.useState)(() => (0, crashHandler_1.getCrashRecords)());
|
|
137
|
+
const [selectedCrash, setSelectedCrash] = (0, react_1.useState)(null);
|
|
138
|
+
const [maxCrashLogs, setMaxCrashLogs] = (0, react_1.useState)(100);
|
|
139
|
+
(0, react_1.useEffect)(() => {
|
|
140
|
+
(0, crashHandler_1.setMaxCrashLogsLimit)(maxCrashLogs);
|
|
141
|
+
}, [maxCrashLogs]);
|
|
131
142
|
(0, react_1.useEffect)(() => {
|
|
132
143
|
if (visible) {
|
|
133
144
|
if (activeTab === 'apis') {
|
|
@@ -136,6 +147,9 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
136
147
|
if (activeTab === 'logs') {
|
|
137
148
|
setLastReadLogsCount(consoleLogs.length);
|
|
138
149
|
}
|
|
150
|
+
if (activeTab === 'crash') {
|
|
151
|
+
setLastReadCrashesCount(crashRecords.length);
|
|
152
|
+
}
|
|
139
153
|
}
|
|
140
154
|
}, [visible]);
|
|
141
155
|
(0, react_1.useEffect)(() => {
|
|
@@ -148,6 +162,11 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
148
162
|
setLastReadLogsCount(consoleLogs.length);
|
|
149
163
|
}
|
|
150
164
|
}, [activeTab, consoleLogs.length]);
|
|
165
|
+
(0, react_1.useEffect)(() => {
|
|
166
|
+
if (activeTab === 'crash') {
|
|
167
|
+
setLastReadCrashesCount(crashRecords.length);
|
|
168
|
+
}
|
|
169
|
+
}, [activeTab, crashRecords.length]);
|
|
151
170
|
const [maxConsoleLogs, setMaxConsoleLogs] = (0, react_1.useState)(200);
|
|
152
171
|
const [showConsoleLevels, setShowConsoleLevels] = (0, react_1.useState)({
|
|
153
172
|
info: true,
|
|
@@ -190,6 +209,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
190
209
|
redux: false,
|
|
191
210
|
bundle: false,
|
|
192
211
|
performance: false,
|
|
212
|
+
crash: true,
|
|
193
213
|
});
|
|
194
214
|
const [maxNetworkLogs, setMaxNetworkLogs] = (0, react_1.useState)(100);
|
|
195
215
|
const [reduxAutoRefresh, setReduxAutoRefreshState] = (0, react_1.useState)(true);
|
|
@@ -210,8 +230,10 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
210
230
|
redux: false,
|
|
211
231
|
bundle: false,
|
|
212
232
|
performance: false,
|
|
233
|
+
crash: true,
|
|
213
234
|
});
|
|
214
235
|
setDefaultTab('apis');
|
|
236
|
+
setMaxCrashLogs(100);
|
|
215
237
|
setMaxNetworkLogs(100);
|
|
216
238
|
setMaxConsoleLogs(200);
|
|
217
239
|
setShowConsoleLevels({
|
|
@@ -244,6 +266,9 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
244
266
|
...prev,
|
|
245
267
|
...saved.tabVisibility,
|
|
246
268
|
apis: true, // APIs is always required
|
|
269
|
+
crash: saved.tabVisibility.crash !== undefined
|
|
270
|
+
? saved.tabVisibility.crash
|
|
271
|
+
: true,
|
|
247
272
|
}));
|
|
248
273
|
if (saved.defaultTab)
|
|
249
274
|
setDefaultTab(saved.defaultTab);
|
|
@@ -269,6 +294,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
269
294
|
redux: false,
|
|
270
295
|
bundle: false,
|
|
271
296
|
performance: false,
|
|
297
|
+
crash: true,
|
|
272
298
|
},
|
|
273
299
|
...(saved.tabVisibility || {}),
|
|
274
300
|
apis: true,
|
|
@@ -371,7 +397,67 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
371
397
|
}, []);
|
|
372
398
|
const [selectedEvent, setSelectedEvent] = (0, react_1.useState)(null);
|
|
373
399
|
const [analyticsSearch, setAnalyticsSearch] = (0, react_1.useState)('');
|
|
374
|
-
const [
|
|
400
|
+
const [analyticsFilters, setAnalyticsFilters] = (0, react_1.useState)({
|
|
401
|
+
categories: new Set(['all']),
|
|
402
|
+
screens: new Set(),
|
|
403
|
+
sources: new Set(['all']),
|
|
404
|
+
userTypes: new Set(['all']),
|
|
405
|
+
timeWindow: 'all',
|
|
406
|
+
payloadComplexity: 'all',
|
|
407
|
+
hasRevenue: false,
|
|
408
|
+
hasItems: false,
|
|
409
|
+
hasUserProps: false,
|
|
410
|
+
hasParams: false,
|
|
411
|
+
onlyDuplicates: false,
|
|
412
|
+
onlyConversions: false,
|
|
413
|
+
sortBy: 'time_desc',
|
|
414
|
+
});
|
|
415
|
+
const isAnalyticsFilterApplied = (0, react_1.useMemo)(() => {
|
|
416
|
+
if (analyticsFilters.categories.size > 0 && !analyticsFilters.categories.has('all'))
|
|
417
|
+
return true;
|
|
418
|
+
if (analyticsFilters.screens.size > 0)
|
|
419
|
+
return true;
|
|
420
|
+
if (analyticsFilters.sources.size > 0 && !analyticsFilters.sources.has('all'))
|
|
421
|
+
return true;
|
|
422
|
+
if (analyticsFilters.userTypes.size > 0 && !analyticsFilters.userTypes.has('all'))
|
|
423
|
+
return true;
|
|
424
|
+
if (analyticsFilters.timeWindow !== 'all')
|
|
425
|
+
return true;
|
|
426
|
+
if (analyticsFilters.payloadComplexity !== 'all')
|
|
427
|
+
return true;
|
|
428
|
+
if (analyticsFilters.hasRevenue)
|
|
429
|
+
return true;
|
|
430
|
+
if (analyticsFilters.hasItems)
|
|
431
|
+
return true;
|
|
432
|
+
if (analyticsFilters.hasUserProps)
|
|
433
|
+
return true;
|
|
434
|
+
if (analyticsFilters.hasParams)
|
|
435
|
+
return true;
|
|
436
|
+
if (analyticsFilters.onlyDuplicates)
|
|
437
|
+
return true;
|
|
438
|
+
if (analyticsFilters.onlyConversions)
|
|
439
|
+
return true;
|
|
440
|
+
if (analyticsFilters.sortBy !== 'time_desc')
|
|
441
|
+
return true;
|
|
442
|
+
return false;
|
|
443
|
+
}, [analyticsFilters]);
|
|
444
|
+
const resetAnalyticsFilters = (0, react_1.useCallback)(() => {
|
|
445
|
+
setAnalyticsFilters({
|
|
446
|
+
categories: new Set(['all']),
|
|
447
|
+
screens: new Set(),
|
|
448
|
+
sources: new Set(['all']),
|
|
449
|
+
userTypes: new Set(['all']),
|
|
450
|
+
timeWindow: 'all',
|
|
451
|
+
payloadComplexity: 'all',
|
|
452
|
+
hasRevenue: false,
|
|
453
|
+
hasItems: false,
|
|
454
|
+
hasUserProps: false,
|
|
455
|
+
hasParams: false,
|
|
456
|
+
onlyDuplicates: false,
|
|
457
|
+
onlyConversions: false,
|
|
458
|
+
sortBy: 'time_desc',
|
|
459
|
+
});
|
|
460
|
+
}, []);
|
|
375
461
|
const [isAnalyticsLayoutReady, setIsAnalyticsLayoutReady] = (0, react_1.useState)(false);
|
|
376
462
|
const [analyticsHeaderExpanded, setAnalyticsHeaderExpanded] = (0, react_1.useState)(false);
|
|
377
463
|
const [newEventIds, setNewEventIds] = (0, react_1.useState)(new Set());
|
|
@@ -589,6 +675,22 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
589
675
|
(0, networkLogger_1.clearNetworkLogs)();
|
|
590
676
|
(0, consoleLogger_1.setupConsoleLogger)();
|
|
591
677
|
(0, analyticsLogger_1.autoSetupAnalyticsLogger)();
|
|
678
|
+
(0, crashHandler_1.setupGlobalCrashHandler)();
|
|
679
|
+
const unsubscribeCrash = (0, crashHandler_1.subscribeCrashEvents)(crashInfo => {
|
|
680
|
+
if (crashInfo.message === '__CLEARED__') {
|
|
681
|
+
setCrashRecords([]);
|
|
682
|
+
setSelectedCrash(null);
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
685
|
+
const updated = (0, crashHandler_1.getCrashRecords)();
|
|
686
|
+
setCrashRecords(updated);
|
|
687
|
+
});
|
|
688
|
+
// Sync crashes recorded before this subscription ran (e.g. a render crash
|
|
689
|
+
// during the very first commit, which fires before effects are mounted).
|
|
690
|
+
const pendingCrashes = (0, crashHandler_1.getCrashRecords)();
|
|
691
|
+
if (pendingCrashes.length > 0) {
|
|
692
|
+
setCrashRecords(pendingCrashes);
|
|
693
|
+
}
|
|
592
694
|
let timeoutId;
|
|
593
695
|
let isFirstNetworkCall = true;
|
|
594
696
|
const unsubscribe = (0, networkLogger_1.subscribeNetworkLogs)((raw) => {
|
|
@@ -700,6 +802,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
700
802
|
unsubscribeConsole();
|
|
701
803
|
clearTimeout(consoleTimeoutId);
|
|
702
804
|
unsubscribeRedux();
|
|
805
|
+
unsubscribeCrash();
|
|
703
806
|
};
|
|
704
807
|
}, []);
|
|
705
808
|
(0, react_1.useEffect)(() => {
|
|
@@ -905,15 +1008,110 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
905
1008
|
const prevResponseData = prevSameRequest ? prevSameRequest.response : null;
|
|
906
1009
|
const filteredAnalyticsEvents = (0, react_1.useMemo)(() => {
|
|
907
1010
|
let events = analyticsEvents;
|
|
908
|
-
|
|
909
|
-
events = events.filter(e => e.name !== 'screen_view');
|
|
910
|
-
}
|
|
1011
|
+
// Search query filter
|
|
911
1012
|
if (analyticsSearch) {
|
|
912
1013
|
const s = analyticsSearch.toLowerCase();
|
|
913
1014
|
events = events.filter(e => e.name.toLowerCase().includes(s) ||
|
|
914
|
-
JSON.stringify(e.params).toLowerCase().includes(s) ||
|
|
1015
|
+
JSON.stringify(e.params || {}).toLowerCase().includes(s) ||
|
|
1016
|
+
(e.screenName ?? '').toLowerCase().includes(s) ||
|
|
915
1017
|
(e.pageTitle ?? '').toLowerCase().includes(s));
|
|
916
1018
|
}
|
|
1019
|
+
// Category filter
|
|
1020
|
+
if (analyticsFilters.categories.size > 0 && !analyticsFilters.categories.has('all')) {
|
|
1021
|
+
events = events.filter(e => {
|
|
1022
|
+
const cat = (0, helpers_1.getEventCategory)(e.name);
|
|
1023
|
+
return analyticsFilters.categories.has(cat);
|
|
1024
|
+
});
|
|
1025
|
+
}
|
|
1026
|
+
// Time window filter
|
|
1027
|
+
if (analyticsFilters.timeWindow !== 'all') {
|
|
1028
|
+
const now = Date.now();
|
|
1029
|
+
const cutoff = analyticsFilters.timeWindow === '1m'
|
|
1030
|
+
? now - 60 * 1000
|
|
1031
|
+
: analyticsFilters.timeWindow === '5m'
|
|
1032
|
+
? now - 5 * 60 * 1000
|
|
1033
|
+
: analyticsFilters.timeWindow === '15m'
|
|
1034
|
+
? now - 15 * 60 * 1000
|
|
1035
|
+
: now - 60 * 60 * 1000;
|
|
1036
|
+
events = events.filter(e => e.timestamp >= cutoff);
|
|
1037
|
+
}
|
|
1038
|
+
// Source filter
|
|
1039
|
+
if (analyticsFilters.sources.size > 0 && !analyticsFilters.sources.has('all')) {
|
|
1040
|
+
events = events.filter(e => analyticsFilters.sources.has(e.source || 'manual'));
|
|
1041
|
+
}
|
|
1042
|
+
// User identification filter
|
|
1043
|
+
if (analyticsFilters.userTypes.size > 0 && !analyticsFilters.userTypes.has('all')) {
|
|
1044
|
+
events = events.filter(e => {
|
|
1045
|
+
const isIdentified = Boolean(e.userId && e.userId.trim() !== '');
|
|
1046
|
+
if (analyticsFilters.userTypes.has('identified') && isIdentified)
|
|
1047
|
+
return true;
|
|
1048
|
+
if (analyticsFilters.userTypes.has('anonymous') && !isIdentified)
|
|
1049
|
+
return true;
|
|
1050
|
+
return false;
|
|
1051
|
+
});
|
|
1052
|
+
}
|
|
1053
|
+
// Payload complexity filter
|
|
1054
|
+
if (analyticsFilters.payloadComplexity !== 'all') {
|
|
1055
|
+
events = events.filter(e => {
|
|
1056
|
+
const count = e.params ? Object.keys(e.params).length : 0;
|
|
1057
|
+
if (analyticsFilters.payloadComplexity === 'none')
|
|
1058
|
+
return count === 0;
|
|
1059
|
+
if (analyticsFilters.payloadComplexity === 'simple')
|
|
1060
|
+
return count >= 1 && count <= 5;
|
|
1061
|
+
if (analyticsFilters.payloadComplexity === 'heavy')
|
|
1062
|
+
return count > 5;
|
|
1063
|
+
return true;
|
|
1064
|
+
});
|
|
1065
|
+
}
|
|
1066
|
+
// Conversion / Goal events filter
|
|
1067
|
+
if (analyticsFilters.onlyConversions) {
|
|
1068
|
+
const CONVERSION_PATTERNS = [
|
|
1069
|
+
'purchase',
|
|
1070
|
+
'item_purchase',
|
|
1071
|
+
'ecommerce_purchase',
|
|
1072
|
+
'sign_up',
|
|
1073
|
+
'login',
|
|
1074
|
+
'lead',
|
|
1075
|
+
'generate_lead',
|
|
1076
|
+
'tutorial_complete',
|
|
1077
|
+
'add_payment_info',
|
|
1078
|
+
'begin_checkout',
|
|
1079
|
+
'spend_virtual_currency',
|
|
1080
|
+
];
|
|
1081
|
+
events = events.filter(e => CONVERSION_PATTERNS.some(pat => e.name.toLowerCase().includes(pat)));
|
|
1082
|
+
}
|
|
1083
|
+
// Screen filter
|
|
1084
|
+
if (analyticsFilters.screens.size > 0) {
|
|
1085
|
+
events = events.filter(e => {
|
|
1086
|
+
const scr = e.screenName ||
|
|
1087
|
+
e.params?.firebase_screen ||
|
|
1088
|
+
e.params?.screen_name ||
|
|
1089
|
+
e.params?.firebase_screen_class ||
|
|
1090
|
+
e.screenClass ||
|
|
1091
|
+
'';
|
|
1092
|
+
return analyticsFilters.screens.has(scr);
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1095
|
+
// Has Revenue filter
|
|
1096
|
+
if (analyticsFilters.hasRevenue) {
|
|
1097
|
+
events = events.filter(e => {
|
|
1098
|
+
const val = e.params?.value ?? e.params?.price;
|
|
1099
|
+
return val !== undefined && val !== null && Number(val) > 0;
|
|
1100
|
+
});
|
|
1101
|
+
}
|
|
1102
|
+
// Has Items filter
|
|
1103
|
+
if (analyticsFilters.hasItems) {
|
|
1104
|
+
events = events.filter(e => Array.isArray(e.params?.items) && e.params.items.length > 0);
|
|
1105
|
+
}
|
|
1106
|
+
// Has User Props filter
|
|
1107
|
+
if (analyticsFilters.hasUserProps) {
|
|
1108
|
+
events = events.filter(e => e.userProperties && Object.keys(e.userProperties).length > 0);
|
|
1109
|
+
}
|
|
1110
|
+
// Has Params filter
|
|
1111
|
+
if (analyticsFilters.hasParams) {
|
|
1112
|
+
events = events.filter(e => e.params && Object.keys(e.params).length > 0);
|
|
1113
|
+
}
|
|
1114
|
+
// Deduplication
|
|
917
1115
|
const deduplicatedEvents = [];
|
|
918
1116
|
for (const e of events) {
|
|
919
1117
|
if (deduplicatedEvents.length === 0) {
|
|
@@ -933,8 +1131,27 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
933
1131
|
deduplicatedEvents.push({ ...e, count: 1 });
|
|
934
1132
|
}
|
|
935
1133
|
}
|
|
936
|
-
|
|
937
|
-
|
|
1134
|
+
let result = deduplicatedEvents;
|
|
1135
|
+
// Only duplicates filter
|
|
1136
|
+
if (analyticsFilters.onlyDuplicates) {
|
|
1137
|
+
result = result.filter(e => (e.count || 1) > 1);
|
|
1138
|
+
}
|
|
1139
|
+
// Sorting
|
|
1140
|
+
if (analyticsFilters.sortBy === 'time_asc') {
|
|
1141
|
+
result = [...result].sort((a, b) => a.timestamp - b.timestamp);
|
|
1142
|
+
}
|
|
1143
|
+
else if (analyticsFilters.sortBy === 'revenue_desc') {
|
|
1144
|
+
result = [...result].sort((a, b) => {
|
|
1145
|
+
const valA = Number(a.params?.value ?? a.params?.price ?? 0);
|
|
1146
|
+
const valB = Number(b.params?.value ?? b.params?.price ?? 0);
|
|
1147
|
+
return valB - valA;
|
|
1148
|
+
});
|
|
1149
|
+
}
|
|
1150
|
+
else if (analyticsFilters.sortBy === 'count_desc') {
|
|
1151
|
+
result = [...result].sort((a, b) => (b.count || 1) - (a.count || 1));
|
|
1152
|
+
}
|
|
1153
|
+
return result;
|
|
1154
|
+
}, [analyticsEvents, analyticsSearch, analyticsFilters]);
|
|
938
1155
|
const filteredConsoleLogs = (0, react_1.useMemo)(() => {
|
|
939
1156
|
let result = visibleConsoleLogs;
|
|
940
1157
|
// Filters check
|
|
@@ -1075,6 +1292,21 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1075
1292
|
]);
|
|
1076
1293
|
return;
|
|
1077
1294
|
}
|
|
1295
|
+
if (activeTab === 'crash') {
|
|
1296
|
+
react_native_1.Alert.alert('Clear Crash History', 'Are you sure you want to clear all intercepted crash records?', [
|
|
1297
|
+
{ text: 'Cancel', style: 'cancel' },
|
|
1298
|
+
{
|
|
1299
|
+
text: 'Clear All',
|
|
1300
|
+
onPress: () => {
|
|
1301
|
+
(0, crashHandler_1.clearCrashRecords)();
|
|
1302
|
+
setCrashRecords([]);
|
|
1303
|
+
setSelectedCrash(null);
|
|
1304
|
+
},
|
|
1305
|
+
style: 'destructive',
|
|
1306
|
+
},
|
|
1307
|
+
]);
|
|
1308
|
+
return;
|
|
1309
|
+
}
|
|
1078
1310
|
// Default: APIs tab. Only clears NETWORK logs — never touches the other tabs.
|
|
1079
1311
|
if (selectedLogs.size > 0) {
|
|
1080
1312
|
setLogs(prev => prev.filter(l => !selectedLogs.has(l.id)));
|
|
@@ -1233,6 +1465,10 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1233
1465
|
filteredAnalyticsEvents,
|
|
1234
1466
|
analyticsSearch,
|
|
1235
1467
|
setAnalyticsSearch,
|
|
1468
|
+
analyticsFilters,
|
|
1469
|
+
setAnalyticsFilters,
|
|
1470
|
+
isAnalyticsFilterApplied,
|
|
1471
|
+
resetAnalyticsFilters,
|
|
1236
1472
|
newEventIds,
|
|
1237
1473
|
isAnalyticsLayoutReady,
|
|
1238
1474
|
setIsAnalyticsLayoutReady,
|
|
@@ -1252,6 +1488,19 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1252
1488
|
setSelectedReduxAction,
|
|
1253
1489
|
reduxActiveSubTab,
|
|
1254
1490
|
setReduxActiveSubTab,
|
|
1491
|
+
// ─── Crash ───────────────────────────────────────────────────────────
|
|
1492
|
+
crashRecords,
|
|
1493
|
+
setCrashRecords,
|
|
1494
|
+
selectedCrash,
|
|
1495
|
+
setSelectedCrash,
|
|
1496
|
+
lastReadCrashesCount,
|
|
1497
|
+
maxCrashLogs,
|
|
1498
|
+
setMaxCrashLogs,
|
|
1499
|
+
clearAllCrashes: () => {
|
|
1500
|
+
(0, crashHandler_1.clearCrashRecords)();
|
|
1501
|
+
setCrashRecords([]);
|
|
1502
|
+
setSelectedCrash(null);
|
|
1503
|
+
},
|
|
1255
1504
|
// ─── Settings ───────────────────────────────────────────────────────
|
|
1256
1505
|
settingsActiveSubTab,
|
|
1257
1506
|
setSettingsActiveSubTab,
|
|
@@ -1310,6 +1559,24 @@ Object.defineProperty(exports, "getCurrentUserProperties", { enumerable: true, g
|
|
|
1310
1559
|
Object.defineProperty(exports, "getCurrentUserId", { enumerable: true, get: function () { return analyticsLogger_2.getCurrentUserId; } });
|
|
1311
1560
|
Object.defineProperty(exports, "getDefaultEventParameters", { enumerable: true, get: function () { return analyticsLogger_2.getDefaultEventParameters; } });
|
|
1312
1561
|
Object.defineProperty(exports, "getCollectionEnabled", { enumerable: true, get: function () { return analyticsLogger_2.getCollectionEnabled; } });
|
|
1562
|
+
var crashHandler_2 = require("./customHooks/crashHandler");
|
|
1563
|
+
Object.defineProperty(exports, "setupGlobalCrashHandler", { enumerable: true, get: function () { return crashHandler_2.setupGlobalCrashHandler; } });
|
|
1564
|
+
Object.defineProperty(exports, "subscribeCrashEvents", { enumerable: true, get: function () { return crashHandler_2.subscribeCrashEvents; } });
|
|
1565
|
+
Object.defineProperty(exports, "emitCrashEvent", { enumerable: true, get: function () { return crashHandler_2.emitCrashEvent; } });
|
|
1566
|
+
Object.defineProperty(exports, "getCrashRecords", { enumerable: true, get: function () { return crashHandler_2.getCrashRecords; } });
|
|
1567
|
+
Object.defineProperty(exports, "clearCrashRecords", { enumerable: true, get: function () { return crashHandler_2.clearCrashRecords; } });
|
|
1568
|
+
Object.defineProperty(exports, "simulateTestCrash", { enumerable: true, get: function () { return crashHandler_2.simulateTestCrash; } });
|
|
1569
|
+
Object.defineProperty(exports, "exportCrashReport", { enumerable: true, get: function () { return crashHandler_2.exportCrashReport; } });
|
|
1570
|
+
Object.defineProperty(exports, "parseCrashStackTrace", { enumerable: true, get: function () { return crashHandler_2.parseCrashStackTrace; } });
|
|
1571
|
+
Object.defineProperty(exports, "recordCustomCrash", { enumerable: true, get: function () { return crashHandler_2.recordCustomCrash; } });
|
|
1572
|
+
Object.defineProperty(exports, "addCrashBreadcrumb", { enumerable: true, get: function () { return crashHandler_2.addCrashBreadcrumb; } });
|
|
1573
|
+
Object.defineProperty(exports, "recordNavigationBreadcrumb", { enumerable: true, get: function () { return crashHandler_2.recordNavigationBreadcrumb; } });
|
|
1574
|
+
Object.defineProperty(exports, "recordNetworkBreadcrumb", { enumerable: true, get: function () { return crashHandler_2.recordNetworkBreadcrumb; } });
|
|
1575
|
+
Object.defineProperty(exports, "recordReduxBreadcrumb", { enumerable: true, get: function () { return crashHandler_2.recordReduxBreadcrumb; } });
|
|
1576
|
+
Object.defineProperty(exports, "recordUserActionBreadcrumb", { enumerable: true, get: function () { return crashHandler_2.recordUserActionBreadcrumb; } });
|
|
1577
|
+
Object.defineProperty(exports, "computeCrashFingerprint", { enumerable: true, get: function () { return crashHandler_2.computeCrashFingerprint; } });
|
|
1578
|
+
var CrashTab_1 = require("./components/Inspector/CrashTab");
|
|
1579
|
+
Object.defineProperty(exports, "CrashTab", { enumerable: true, get: function () { return __importDefault(CrashTab_1).default; } });
|
|
1313
1580
|
var ErrorBoundary_2 = require("./components/ErrorBoundary");
|
|
1314
1581
|
Object.defineProperty(exports, "ErrorBoundary", { enumerable: true, get: function () { return __importDefault(ErrorBoundary_2).default; } });
|
|
1315
1582
|
var reduxLogger_2 = require("./customHooks/reduxLogger");
|
|
@@ -1320,3 +1587,38 @@ Object.defineProperty(exports, "subscribeReduxState", { enumerable: true, get: f
|
|
|
1320
1587
|
Object.defineProperty(exports, "getActionHistory", { enumerable: true, get: function () { return reduxLogger_2.getActionHistory; } });
|
|
1321
1588
|
Object.defineProperty(exports, "clearActionHistory", { enumerable: true, get: function () { return reduxLogger_2.clearActionHistory; } });
|
|
1322
1589
|
Object.defineProperty(exports, "getLastActionForReducer", { enumerable: true, get: function () { return reduxLogger_2.getLastActionForReducer; } });
|
|
1590
|
+
var gaAnalyticsRegistry_1 = require("./helpers/gaAnalyticsRegistry");
|
|
1591
|
+
Object.defineProperty(exports, "getEventCategory", { enumerable: true, get: function () { return gaAnalyticsRegistry_1.getEventCategory; } });
|
|
1592
|
+
Object.defineProperty(exports, "registerGAPlugin", { enumerable: true, get: function () { return gaAnalyticsRegistry_1.registerGAPlugin; } });
|
|
1593
|
+
var performanceTracker_1 = require("./customHooks/performanceTracker");
|
|
1594
|
+
Object.defineProperty(exports, "usePerformanceTracker", { enumerable: true, get: function () { return performanceTracker_1.usePerformanceTracker; } });
|
|
1595
|
+
Object.defineProperty(exports, "logPerformanceEvent", { enumerable: true, get: function () { return performanceTracker_1.logPerformanceEvent; } });
|
|
1596
|
+
Object.defineProperty(exports, "clearPerformanceEvents", { enumerable: true, get: function () { return performanceTracker_1.clearPerformanceEvents; } });
|
|
1597
|
+
Object.defineProperty(exports, "subscribePerformanceEvents", { enumerable: true, get: function () { return performanceTracker_1.subscribePerformanceEvents; } });
|
|
1598
|
+
Object.defineProperty(exports, "getPerformanceEvents", { enumerable: true, get: function () { return performanceTracker_1.getPerformanceEvents; } });
|
|
1599
|
+
var decorators_1 = require("./decorators");
|
|
1600
|
+
Object.defineProperty(exports, "InspectLog", { enumerable: true, get: function () { return decorators_1.InspectLog; } });
|
|
1601
|
+
Object.defineProperty(exports, "InspectTrackTime", { enumerable: true, get: function () { return decorators_1.InspectTrackTime; } });
|
|
1602
|
+
Object.defineProperty(exports, "InspectCatch", { enumerable: true, get: function () { return decorators_1.InspectCatch; } });
|
|
1603
|
+
var types_1 = require("./types");
|
|
1604
|
+
Object.defineProperty(exports, "ActiveTab", { enumerable: true, get: function () { return types_1.ActiveTab; } });
|
|
1605
|
+
Object.defineProperty(exports, "Method", { enumerable: true, get: function () { return types_1.Method; } });
|
|
1606
|
+
Object.defineProperty(exports, "StatusFilter", { enumerable: true, get: function () { return types_1.StatusFilter; } });
|
|
1607
|
+
Object.defineProperty(exports, "SortOrder", { enumerable: true, get: function () { return types_1.SortOrder; } });
|
|
1608
|
+
Object.defineProperty(exports, "LocalFilter", { enumerable: true, get: function () { return types_1.LocalFilter; } });
|
|
1609
|
+
Object.defineProperty(exports, "ModalAnimationType", { enumerable: true, get: function () { return types_1.ModalAnimationType; } });
|
|
1610
|
+
Object.defineProperty(exports, "SettingsPage", { enumerable: true, get: function () { return types_1.SettingsPage; } });
|
|
1611
|
+
Object.defineProperty(exports, "SettingsSubTab", { enumerable: true, get: function () { return types_1.SettingsSubTab; } });
|
|
1612
|
+
Object.defineProperty(exports, "LogFilter", { enumerable: true, get: function () { return types_1.LogFilter; } });
|
|
1613
|
+
Object.defineProperty(exports, "ConsoleLogType", { enumerable: true, get: function () { return types_1.ConsoleLogType; } });
|
|
1614
|
+
Object.defineProperty(exports, "AnalyticsEventSource", { enumerable: true, get: function () { return types_1.AnalyticsEventSource; } });
|
|
1615
|
+
Object.defineProperty(exports, "GAEventCategory", { enumerable: true, get: function () { return types_1.GAEventCategory; } });
|
|
1616
|
+
Object.defineProperty(exports, "StackFrameType", { enumerable: true, get: function () { return types_1.StackFrameType; } });
|
|
1617
|
+
Object.defineProperty(exports, "DiffResultType", { enumerable: true, get: function () { return types_1.DiffResultType; } });
|
|
1618
|
+
Object.defineProperty(exports, "BundleSubTab", { enumerable: true, get: function () { return types_1.BundleSubTab; } });
|
|
1619
|
+
Object.defineProperty(exports, "PerformanceSubTab", { enumerable: true, get: function () { return types_1.PerformanceSubTab; } });
|
|
1620
|
+
Object.defineProperty(exports, "CrashType", { enumerable: true, get: function () { return types_1.CrashType; } });
|
|
1621
|
+
Object.defineProperty(exports, "CrashExportFormat", { enumerable: true, get: function () { return types_1.CrashExportFormat; } });
|
|
1622
|
+
Object.defineProperty(exports, "CrashDetailSubTab", { enumerable: true, get: function () { return types_1.CrashDetailSubTab; } });
|
|
1623
|
+
Object.defineProperty(exports, "CrashFilterType", { enumerable: true, get: function () { return types_1.CrashFilterType; } });
|
|
1624
|
+
Object.defineProperty(exports, "BreadcrumbType", { enumerable: true, get: function () { return types_1.BreadcrumbType; } });
|
|
@@ -641,6 +641,10 @@ export declare const getRawStyles: (colors: typeof AppColors) => {
|
|
|
641
641
|
fontSize: number;
|
|
642
642
|
color: string;
|
|
643
643
|
letterSpacing: number;
|
|
644
|
+
backgroundColor: string;
|
|
645
|
+
paddingHorizontal: number;
|
|
646
|
+
paddingVertical: number;
|
|
647
|
+
borderRadius: number;
|
|
644
648
|
};
|
|
645
649
|
slugText: {
|
|
646
650
|
fontFamily: string;
|
|
@@ -1457,7 +1461,6 @@ export declare const getRawStyles: (colors: typeof AppColors) => {
|
|
|
1457
1461
|
flexDirection: string;
|
|
1458
1462
|
justifyContent: string;
|
|
1459
1463
|
alignItems: string;
|
|
1460
|
-
marginBottom: number;
|
|
1461
1464
|
};
|
|
1462
1465
|
analyticsHeaderTitle: {
|
|
1463
1466
|
fontFamily: string;
|
|
@@ -610,10 +610,10 @@ const getRawStyles = (colors) => ({
|
|
|
610
610
|
flexDirection: 'row',
|
|
611
611
|
alignItems: 'center',
|
|
612
612
|
justifyContent: 'space-between',
|
|
613
|
-
backgroundColor: colors.
|
|
614
|
-
borderRadius:
|
|
613
|
+
backgroundColor: `${colors.brandPurple}08`,
|
|
614
|
+
borderRadius: 8,
|
|
615
615
|
borderWidth: 1,
|
|
616
|
-
borderColor: colors.
|
|
616
|
+
borderColor: `${colors.brandPurple}18`,
|
|
617
617
|
paddingHorizontal: 8,
|
|
618
618
|
paddingVertical: 5,
|
|
619
619
|
marginVertical: 5,
|
|
@@ -628,12 +628,16 @@ const getRawStyles = (colors) => ({
|
|
|
628
628
|
slugTag: {
|
|
629
629
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
630
630
|
fontSize: 8.5,
|
|
631
|
-
color: colors.
|
|
631
|
+
color: colors.brandPurple,
|
|
632
632
|
letterSpacing: 0.5,
|
|
633
|
+
backgroundColor: `${colors.brandPurple}15`,
|
|
634
|
+
paddingHorizontal: 4,
|
|
635
|
+
paddingVertical: 1,
|
|
636
|
+
borderRadius: 4,
|
|
633
637
|
},
|
|
634
638
|
slugText: {
|
|
635
639
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
636
|
-
fontSize: 12
|
|
640
|
+
fontSize: 12,
|
|
637
641
|
color: colors.primaryBlack,
|
|
638
642
|
flexShrink: 1,
|
|
639
643
|
},
|
|
@@ -1369,11 +1373,11 @@ const getRawStyles = (colors) => ({
|
|
|
1369
1373
|
backgroundColor: colors.primaryLight,
|
|
1370
1374
|
borderRadius: 12,
|
|
1371
1375
|
borderWidth: 1,
|
|
1372
|
-
borderColor: colors.
|
|
1373
|
-
padding:
|
|
1374
|
-
marginHorizontal:
|
|
1376
|
+
borderColor: `${colors.brandPurple}20`,
|
|
1377
|
+
padding: 12,
|
|
1378
|
+
marginHorizontal: 10,
|
|
1375
1379
|
marginTop: 8,
|
|
1376
|
-
marginBottom:
|
|
1380
|
+
marginBottom: 6,
|
|
1377
1381
|
shadowColor: colors.black,
|
|
1378
1382
|
shadowOpacity: 0.03,
|
|
1379
1383
|
shadowRadius: 4,
|
|
@@ -1384,11 +1388,10 @@ const getRawStyles = (colors) => ({
|
|
|
1384
1388
|
flexDirection: 'row',
|
|
1385
1389
|
justifyContent: 'space-between',
|
|
1386
1390
|
alignItems: 'center',
|
|
1387
|
-
marginBottom: 10,
|
|
1388
1391
|
},
|
|
1389
1392
|
analyticsHeaderTitle: {
|
|
1390
1393
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1391
|
-
fontSize:
|
|
1394
|
+
fontSize: 13.5,
|
|
1392
1395
|
color: colors.primaryBlack,
|
|
1393
1396
|
},
|
|
1394
1397
|
statusDot: {
|
|
@@ -1399,21 +1402,21 @@ const getRawStyles = (colors) => ({
|
|
|
1399
1402
|
analyticsHeaderSubtitle: {
|
|
1400
1403
|
fontFamily: AppFonts_1.AppFonts.interMedium,
|
|
1401
1404
|
fontSize: 11,
|
|
1402
|
-
color: colors.
|
|
1405
|
+
color: colors.grayTextWeak,
|
|
1403
1406
|
marginTop: 2,
|
|
1404
1407
|
},
|
|
1405
1408
|
analyticsHeaderToggle: {
|
|
1406
|
-
paddingVertical: 4,
|
|
1407
|
-
paddingHorizontal:
|
|
1408
|
-
borderRadius:
|
|
1409
|
-
backgroundColor: colors.
|
|
1409
|
+
paddingVertical: 4.5,
|
|
1410
|
+
paddingHorizontal: 9,
|
|
1411
|
+
borderRadius: 7,
|
|
1412
|
+
backgroundColor: `${colors.brandPurple}12`,
|
|
1410
1413
|
borderWidth: 1,
|
|
1411
|
-
borderColor: colors.
|
|
1414
|
+
borderColor: `${colors.brandPurple}25`,
|
|
1412
1415
|
},
|
|
1413
1416
|
analyticsHeaderToggleText: {
|
|
1414
1417
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1415
|
-
fontSize: 10,
|
|
1416
|
-
color: colors.
|
|
1418
|
+
fontSize: 10.5,
|
|
1419
|
+
color: colors.brandPurple,
|
|
1417
1420
|
},
|
|
1418
1421
|
analyticsStatsRow: {
|
|
1419
1422
|
flexDirection: 'row',
|