react-native-inapp-inspector 2.0.6 → 2.1.0

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 (96) hide show
  1. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +0 -11
  2. package/dist/commonjs/components/Inspector/InspectorHeader.js +25 -28
  3. package/dist/commonjs/components/Inspector/MainScreen.js +2 -15
  4. package/dist/commonjs/components/Inspector/NetworkDetail.js +0 -15
  5. package/dist/commonjs/components/Inspector/PerformanceTab.js +18 -30
  6. package/dist/commonjs/components/Inspector/SettingsPanel.js +15 -326
  7. package/dist/commonjs/components/Inspector/TabBar.js +2 -23
  8. package/dist/commonjs/components/NetworkIcons.d.ts +0 -12
  9. package/dist/commonjs/components/NetworkIcons.js +3 -72
  10. package/dist/commonjs/constants/version.d.ts +1 -1
  11. package/dist/commonjs/constants/version.js +1 -1
  12. package/dist/commonjs/helpers/index.d.ts +0 -2
  13. package/dist/commonjs/helpers/index.js +1 -12
  14. package/dist/commonjs/helpers/telemetry.js +4 -4
  15. package/dist/commonjs/i18n/locales/en.json +2 -3
  16. package/dist/commonjs/index.d.ts +0 -1
  17. package/dist/commonjs/index.js +9 -113
  18. package/dist/commonjs/native/NativeInspector.d.ts +0 -1
  19. package/dist/commonjs/types/enums.d.ts +0 -7
  20. package/dist/commonjs/types/enums.js +0 -7
  21. package/dist/commonjs/types/interfaces.d.ts +0 -73
  22. package/dist/esm/components/Inspector/InspectorHeader.js +25 -28
  23. package/dist/esm/components/Inspector/MainScreen.js +2 -15
  24. package/dist/esm/components/Inspector/NetworkDetail.js +1 -16
  25. package/dist/esm/components/Inspector/PerformanceTab.js +19 -31
  26. package/dist/esm/components/Inspector/SettingsPanel.js +16 -327
  27. package/dist/esm/components/Inspector/TabBar.js +3 -24
  28. package/dist/esm/components/NetworkIcons.d.ts +0 -12
  29. package/dist/esm/components/NetworkIcons.js +0 -57
  30. package/dist/esm/constants/version.d.ts +1 -1
  31. package/dist/esm/constants/version.js +1 -1
  32. package/dist/esm/helpers/index.d.ts +0 -2
  33. package/dist/esm/helpers/index.js +0 -10
  34. package/dist/esm/helpers/telemetry.js +4 -4
  35. package/dist/esm/i18n/locales/en.json +2 -3
  36. package/dist/esm/index.d.ts +0 -1
  37. package/dist/esm/index.js +8 -109
  38. package/dist/esm/native/NativeInspector.d.ts +0 -1
  39. package/dist/esm/types/enums.d.ts +0 -7
  40. package/dist/esm/types/enums.js +0 -7
  41. package/dist/esm/types/interfaces.d.ts +0 -73
  42. package/ios/NetworkInspectorModule.mm +5 -12
  43. package/package.json +1 -4
  44. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  45. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  46. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  47. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  48. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  49. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  50. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  51. package/android/.gradle/8.9/gc.properties +0 -0
  52. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  53. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  54. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  55. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  56. package/android/.gradle/9.2.0/gc.properties +0 -0
  57. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  58. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  59. package/android/.gradle/vcs-1/gc.properties +0 -0
  60. package/android/build/reports/problems/problems-report.html +0 -659
  61. package/dist/commonjs/components/Inspector/AuditTab.d.ts +0 -3
  62. package/dist/commonjs/components/Inspector/AuditTab.js +0 -741
  63. package/dist/commonjs/components/Inspector/DeviceTab.d.ts +0 -3
  64. package/dist/commonjs/components/Inspector/DeviceTab.js +0 -717
  65. package/dist/commonjs/components/Inspector/PerformanceHud.d.ts +0 -7
  66. package/dist/commonjs/components/Inspector/PerformanceHud.js +0 -210
  67. package/dist/commonjs/components/Inspector/RequestReplayModal.d.ts +0 -9
  68. package/dist/commonjs/components/Inspector/RequestReplayModal.js +0 -792
  69. package/dist/commonjs/components/Inspector/RequestReplayView.d.ts +0 -8
  70. package/dist/commonjs/components/Inspector/RequestReplayView.js +0 -871
  71. package/dist/commonjs/components/Inspector/StorageTab.d.ts +0 -3
  72. package/dist/commonjs/components/Inspector/StorageTab.js +0 -610
  73. package/dist/commonjs/customHooks/storageInspector.d.ts +0 -13
  74. package/dist/commonjs/customHooks/storageInspector.js +0 -179
  75. package/dist/commonjs/helpers/deviceInfo.d.ts +0 -4
  76. package/dist/commonjs/helpers/deviceInfo.js +0 -94
  77. package/dist/commonjs/helpers/packageAuditor.d.ts +0 -5
  78. package/dist/commonjs/helpers/packageAuditor.js +0 -182
  79. package/dist/esm/components/Inspector/AuditTab.d.ts +0 -3
  80. package/dist/esm/components/Inspector/AuditTab.js +0 -702
  81. package/dist/esm/components/Inspector/DeviceTab.d.ts +0 -3
  82. package/dist/esm/components/Inspector/DeviceTab.js +0 -678
  83. package/dist/esm/components/Inspector/PerformanceHud.d.ts +0 -7
  84. package/dist/esm/components/Inspector/PerformanceHud.js +0 -170
  85. package/dist/esm/components/Inspector/RequestReplayModal.d.ts +0 -9
  86. package/dist/esm/components/Inspector/RequestReplayModal.js +0 -752
  87. package/dist/esm/components/Inspector/RequestReplayView.d.ts +0 -8
  88. package/dist/esm/components/Inspector/RequestReplayView.js +0 -831
  89. package/dist/esm/components/Inspector/StorageTab.d.ts +0 -3
  90. package/dist/esm/components/Inspector/StorageTab.js +0 -571
  91. package/dist/esm/customHooks/storageInspector.d.ts +0 -13
  92. package/dist/esm/customHooks/storageInspector.js +0 -170
  93. package/dist/esm/helpers/deviceInfo.d.ts +0 -4
  94. package/dist/esm/helpers/deviceInfo.js +0 -89
  95. package/dist/esm/helpers/packageAuditor.d.ts +0 -5
  96. package/dist/esm/helpers/packageAuditor.js +0 -173
@@ -31,8 +31,6 @@ export declare const formatTimeShort: (ts: number) => string;
31
31
  export declare const formatTime: (ts: number) => string;
32
32
  /** Formats a relative gap like "+2s" / "+1m 5s" / "+350ms". */
33
33
  export declare const formatGap: (ms: number) => string;
34
- /** Formats byte size into human readable B / KB / MB. */
35
- export declare const formatBytes: (bytes: number) => string;
36
34
  /** Finds the first JSON object/array embedded anywhere in a log message. */
37
35
  export declare const getJsonContent: (message: string) => JsonContent | null;
38
36
  /** Pretty-prints JSON data showing 3-4 lines with trailing "..." */
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.getRuntimeDiagnostics = exports.getCategoryColors = exports.registerGAPlugin = exports.getEventCategory = exports.getEventColor = exports.ANALYTICS_EVENT_PALETTE = exports.openInVSCode = exports.parseStackLine = exports.getJsonPreviewText = exports.getJsonContent = exports.formatBytes = exports.formatGap = exports.formatTime = exports.formatTimeShort = exports.handleOpenExternalLink = exports.getAppName = exports.getBundleIdentifier = exports.formatDateTimeToAnalytics = exports.isAllValuesEmpty = exports.getLocalizedFilePathWithSlash = exports.getLocalizedFilePath = exports.formatDisplayUrl = exports.getDiff = exports.flattenObject = exports.getNavigationInfo = exports.escapeRegex = exports.deduplicateLogs = exports.getFetchCommand = exports.getCurlCommand = exports.getBaseUrl = exports.getPath = exports.copyToClipboard = exports.getSize = exports.getDurationColor = exports.getStatusColor = exports.formatTimestamp = exports.formatDateTime = exports.getDomainColor = void 0;
20
+ exports.getRuntimeDiagnostics = exports.getCategoryColors = exports.registerGAPlugin = exports.getEventCategory = exports.getEventColor = exports.ANALYTICS_EVENT_PALETTE = exports.openInVSCode = exports.parseStackLine = exports.getJsonPreviewText = exports.getJsonContent = exports.formatGap = exports.formatTime = exports.formatTimeShort = exports.handleOpenExternalLink = exports.getAppName = exports.getBundleIdentifier = exports.formatDateTimeToAnalytics = exports.isAllValuesEmpty = exports.getLocalizedFilePathWithSlash = exports.getLocalizedFilePath = exports.formatDisplayUrl = exports.getDiff = exports.flattenObject = exports.getNavigationInfo = exports.escapeRegex = exports.deduplicateLogs = exports.getFetchCommand = exports.getCurlCommand = exports.getBaseUrl = exports.getPath = exports.copyToClipboard = exports.getSize = exports.getDurationColor = exports.getStatusColor = exports.formatTimestamp = exports.formatDateTime = exports.getDomainColor = void 0;
21
21
  const react_native_1 = require("react-native");
22
22
  const clipboard_1 = __importDefault(require("@react-native-clipboard/clipboard"));
23
23
  const toast_1 = require("./toast");
@@ -440,17 +440,6 @@ const formatGap = (ms) => {
440
440
  return rem > 0 ? `+${m}m ${rem}s` : `+${m}m`;
441
441
  };
442
442
  exports.formatGap = formatGap;
443
- /** Formats byte size into human readable B / KB / MB. */
444
- const formatBytes = (bytes) => {
445
- if (bytes === 0)
446
- return '0 B';
447
- if (bytes < 1024)
448
- return `${bytes} B`;
449
- if (bytes < 1024 * 1024)
450
- return `${(bytes / 1024).toFixed(1)} KB`;
451
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
452
- };
453
- exports.formatBytes = formatBytes;
454
443
  /** Finds the first JSON object/array embedded anywhere in a log message. */
455
444
  const getJsonContent = (message) => {
456
445
  if (!message)
@@ -31,8 +31,8 @@ const constants_1 = require("../constants");
31
31
  const NativeInspector_1 = require("../native/NativeInspector");
32
32
  // ─── GA4 Measurement Protocol Configuration ──────────────────────────────────
33
33
  // Automatically replaced at build-time from .env by scripts/inject-telemetry.js
34
- exports.GA4_MEASUREMENT_ID = 'G-3QGMQVZX5V';
35
- exports.GA4_API_SECRET = 'C46RQZ3PTfmHDnLnvU3KIg';
34
+ exports.GA4_MEASUREMENT_ID = 'G-XXXXXXXXXX';
35
+ exports.GA4_API_SECRET = 'YOUR_GA4_API_SECRET';
36
36
  const GA4_ENDPOINT = 'https://www.google-analytics.com/mp/collect';
37
37
  const CLIENT_ID_KEY = 'telemetry_client_id';
38
38
  // Stable session ID created once per JavaScript runtime instance
@@ -254,9 +254,9 @@ async function trackTelemetryEvent(eventName, params = {}, options) {
254
254
  return;
255
255
  // Don't send if credentials haven't been configured yet
256
256
  if (!exports.GA4_MEASUREMENT_ID ||
257
- exports.GA4_MEASUREMENT_ID === 'G-3QGMQVZX5V' ||
257
+ exports.GA4_MEASUREMENT_ID === 'G-XXXXXXXXXX' ||
258
258
  !exports.GA4_API_SECRET ||
259
- exports.GA4_API_SECRET === 'C46RQZ3PTfmHDnLnvU3KIg') {
259
+ exports.GA4_API_SECRET === 'YOUR_GA4_API_SECRET') {
260
260
  return;
261
261
  }
262
262
  try {
@@ -50,9 +50,8 @@
50
50
  "activeBadge": "ACTIVE",
51
51
  "dormantBadge": "DORMANT",
52
52
  "protectedBadge": "PROTECTED",
53
- "modulesAndTools": "Modules & Tabs",
54
- "ramLimits": "RAM & Limits",
55
- "uiPreferences": "UI & Appearance",
53
+ "modulesAndTools": "Modules & Tools",
54
+ "uiPreferences": "UI Preferences",
56
55
  "zeroOverheadTitle": "Zero Background Overhead",
57
56
  "zeroOverheadDesc": "Check the modules you wish to activate. Disabled modules consume 0% CPU & memory until saved.",
58
57
  "unsavedPending": "● Unsaved selections pending",
@@ -14,6 +14,5 @@ export { usePerformanceTracker, useComponentProfiler, useNavigationProfiler, tra
14
14
  export { InspectLog, InspectTrackTime, InspectCatch, type InspectLogOptions, } from './decorators';
15
15
  export { getNativeDeviceMetrics, enableNativeCrashProtection, subscribeNativeCrashes, showNativeFloatingButton, hideNativeFloatingButton, setNativeFloatingButtonBadge, subscribeNativeFloatingButtonPress, subscribeNativeDeviceShake, startNativeFpsMonitoring, stopNativeFpsMonitoring, getNativeFpsMetrics, getNativeStorageItem, setNativeStorageItem, isNativeModuleAvailable, type NativeDeviceMetrics, type NativeCrashEvent, type FloatingButtonOptions, type NativeFpsMetrics, } from './native/NativeInspector';
16
16
  export { sendSessionTelemetryPing, trackTelemetryEvent, trackInspectorOpen, trackTabSwitch, trackLogExport, GA4_MEASUREMENT_ID, GA4_API_SECRET, } from './helpers';
17
- export { runLivePackageAudit, logCodeQualityIssue, clearCustomAuditIssues, } from './helpers/packageAuditor';
18
17
  export { BrandSquareIcon, BrandCircleIcon, } from './components/NetworkIcons';
19
18
  export { ActiveTab, Method, StatusFilter, SortOrder, LocalFilter, ModalAnimationType, SettingsPage, SettingsSubTab, LogFilter, ConsoleLogType, AnalyticsEventSource, GAEventCategory, StackFrameType, DiffResultType, BundleSubTab, PerformanceSubTab, CrashType, CrashExportFormat, CrashDetailSubTab, CrashFilterType, BreadcrumbType, } from './types';
@@ -37,8 +37,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.registerComponentProfile = exports.getHermesMemoryStats = exports.measureAsync = exports.trackHeavyTask = exports.trackNavigationTransition = exports.trackComponentRender = exports.useNavigationProfiler = exports.useComponentProfiler = 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.GAEventCategory = exports.AnalyticsEventSource = exports.ConsoleLogType = exports.LogFilter = exports.SettingsSubTab = exports.SettingsPage = exports.ModalAnimationType = exports.LocalFilter = exports.SortOrder = exports.StatusFilter = exports.Method = exports.ActiveTab = exports.BrandCircleIcon = exports.BrandSquareIcon = exports.clearCustomAuditIssues = exports.logCodeQualityIssue = exports.runLivePackageAudit = exports.GA4_API_SECRET = exports.GA4_MEASUREMENT_ID = exports.trackLogExport = exports.trackTabSwitch = exports.trackInspectorOpen = exports.trackTelemetryEvent = exports.sendSessionTelemetryPing = exports.isNativeModuleAvailable = exports.setNativeStorageItem = exports.getNativeStorageItem = exports.getNativeFpsMetrics = exports.stopNativeFpsMonitoring = exports.startNativeFpsMonitoring = exports.subscribeNativeDeviceShake = exports.subscribeNativeFloatingButtonPress = exports.setNativeFloatingButtonBadge = exports.hideNativeFloatingButton = exports.showNativeFloatingButton = exports.subscribeNativeCrashes = exports.enableNativeCrashProtection = exports.getNativeDeviceMetrics = exports.InspectCatch = exports.InspectTrackTime = exports.InspectLog = exports.generateFixSnippet = exports.getInitialPerformanceEvents = exports.getInitialRenderProfiles = exports.getPerformanceEvents = exports.subscribePerformanceEvents = exports.clearPerformanceEvents = exports.logPerformanceEvent = exports.getRenderProfiles = exports.subscribeRenderProfiles = void 0;
41
- exports.BreadcrumbType = exports.CrashFilterType = exports.CrashDetailSubTab = exports.CrashExportFormat = exports.CrashType = exports.PerformanceSubTab = exports.BundleSubTab = exports.DiffResultType = exports.StackFrameType = void 0;
40
+ 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 = exports.ActiveTab = exports.BrandCircleIcon = exports.BrandSquareIcon = exports.GA4_API_SECRET = exports.GA4_MEASUREMENT_ID = exports.trackLogExport = exports.trackTabSwitch = exports.trackInspectorOpen = exports.trackTelemetryEvent = exports.sendSessionTelemetryPing = exports.isNativeModuleAvailable = exports.setNativeStorageItem = exports.getNativeStorageItem = exports.getNativeFpsMetrics = exports.stopNativeFpsMonitoring = exports.startNativeFpsMonitoring = exports.subscribeNativeDeviceShake = exports.subscribeNativeFloatingButtonPress = exports.setNativeFloatingButtonBadge = exports.hideNativeFloatingButton = exports.showNativeFloatingButton = exports.subscribeNativeCrashes = exports.enableNativeCrashProtection = exports.getNativeDeviceMetrics = exports.InspectCatch = exports.InspectTrackTime = exports.InspectLog = exports.generateFixSnippet = exports.getInitialPerformanceEvents = exports.getInitialRenderProfiles = exports.getPerformanceEvents = exports.subscribePerformanceEvents = exports.clearPerformanceEvents = exports.logPerformanceEvent = exports.getRenderProfiles = exports.subscribeRenderProfiles = void 0;
41
+ exports.BreadcrumbType = exports.CrashFilterType = exports.CrashDetailSubTab = exports.CrashExportFormat = exports.CrashType = exports.PerformanceSubTab = void 0;
42
42
  const react_1 = __importStar(require("react"));
43
43
  const react_native_1 = require("react-native");
44
44
  const native_1 = require("@react-navigation/native");
@@ -64,22 +64,14 @@ const analyticsLogger_1 = require("./customHooks/analyticsLogger");
64
64
  const reduxLogger_1 = require("./customHooks/reduxLogger");
65
65
  const performanceTracker_1 = require("./customHooks/performanceTracker");
66
66
  const bundleAnalyzer_1 = require("./customHooks/bundleAnalyzer");
67
- const storageInspector_1 = require("./customHooks/storageInspector");
68
- const deviceInfo_1 = require("./helpers/deviceInfo");
69
- const packageAuditor_1 = require("./helpers/packageAuditor");
70
67
  const NativeInspector_2 = require("./native/NativeInspector");
71
68
  const constants_1 = require("./constants");
72
69
  // Stylesheet
73
70
  const styles_1 = require("./styles");
74
- const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigationRef, appIcon, environment, initialVisible, visible: controlledVisible, initialTab, enablePerformanceHud = false, }) => {
75
- // Zero-overhead production stub: if disabled, return null immediately
76
- if (!enabled || !isEnabled) {
77
- return null;
78
- }
71
+ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigationRef, appIcon, environment, initialVisible, visible: controlledVisible, }) => {
79
72
  // Set custom storage synchronously during render phase
80
73
  (0, settingsStore_1.setCustomStorage)(storage || null);
81
74
  const [isDark, setIsDark] = (0, react_1.useState)(false);
82
- const [isPerformanceHudEnabled, setIsPerformanceHudEnabled] = (0, react_1.useState)(enablePerformanceHud);
83
75
  const [reduxState, setReduxState] = (0, react_1.useState)(null);
84
76
  // Per-reducer last action is kept in component state so the
85
77
  // Redux tab re-renders live on every dispatch, independent of the state tree ref.
@@ -94,11 +86,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
94
86
  setVisible(controlledVisible);
95
87
  }
96
88
  }, [controlledVisible]);
97
- (0, react_1.useEffect)(() => {
98
- if (enablePerformanceHud !== undefined) {
99
- setIsPerformanceHudEnabled(enablePerformanceHud);
100
- }
101
- }, [enablePerformanceHud]);
102
89
  const [isReady, setIsReady] = (0, react_1.useState)(false);
103
90
  const [selected, setSelected] = (0, react_1.useState)(null);
104
91
  const [selectedLogs, setSelectedLogs] = (0, react_1.useState)(new Set());
@@ -138,7 +125,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
138
125
  const [showReqDiff, setShowReqDiff] = (0, react_1.useState)(false);
139
126
  const [showResDiff, setShowResDiff] = (0, react_1.useState)(false);
140
127
  // ─── Analytics state ───────────────────────────────────────────────────────
141
- const [activeTab, setActiveTab] = (0, react_1.useState)(initialTab || 'apis');
128
+ const [activeTab, setActiveTab] = (0, react_1.useState)('apis');
142
129
  const [analyticsEvents, setAnalyticsEvents] = (0, react_1.useState)([]);
143
130
  // ─── Logs state ────────────────────────────────────────────────────────────
144
131
  const [consoleLogs, setConsoleLogs] = (0, react_1.useState)([]);
@@ -194,47 +181,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
194
181
  setLastReadCrashesCount(crashRecords.length);
195
182
  }
196
183
  }, [activeTab, crashRecords.length]);
197
- // ─── Storage state ─────────────────────────────────────────────────────────
198
- const [storageEntries, setStorageEntries] = (0, react_1.useState)([]);
199
- const [selectedStorageKey, setSelectedStorageKey] = (0, react_1.useState)(null);
200
- const refreshStorageEntries = (0, react_1.useCallback)(async () => {
201
- try {
202
- const entries = await (0, storageInspector_1.fetchAllStorageEntries)();
203
- setStorageEntries(entries);
204
- }
205
- catch { }
206
- }, []);
207
- const updateStorageEntry = (0, react_1.useCallback)(async (key, value) => {
208
- await (0, storageInspector_1.setStorageItem)(key, value);
209
- await refreshStorageEntries();
210
- }, [refreshStorageEntries]);
211
- const deleteStorageEntry = (0, react_1.useCallback)(async (key) => {
212
- await (0, storageInspector_1.removeStorageItem)(key);
213
- await refreshStorageEntries();
214
- }, [refreshStorageEntries]);
215
- const clearAllStorageEntries = (0, react_1.useCallback)(async () => {
216
- await (0, storageInspector_1.clearAllStorage)();
217
- await refreshStorageEntries();
218
- }, [refreshStorageEntries]);
219
- (0, react_1.useEffect)(() => {
220
- refreshStorageEntries();
221
- const unsub = (0, storageInspector_1.subscribeStorageChanges)(refreshStorageEntries);
222
- return () => unsub();
223
- }, [refreshStorageEntries]);
224
- // ─── Device info state ──────────────────────────────────────────────────────
225
- const [deviceInfo] = (0, react_1.useState)(() => (0, deviceInfo_1.getSystemDiagnostics)());
226
- // ─── Code Quality & Package Audit state ─────────────────────────────────────
227
- const [auditReport, setAuditReport] = (0, react_1.useState)(() => (0, packageAuditor_1.runLivePackageAudit)());
228
- (0, react_1.useEffect)(() => {
229
- const unsub = (0, packageAuditor_1.subscribeAuditChanges)(setAuditReport);
230
- return () => unsub();
231
- }, []);
232
- const refreshAuditReport = (0, react_1.useCallback)(() => {
233
- setAuditReport((0, packageAuditor_1.runLivePackageAudit)());
234
- }, []);
235
- const logCustomAuditIssue = (0, react_1.useCallback)((issue) => {
236
- (0, packageAuditor_1.logCodeQualityIssue)(issue);
237
- }, []);
238
184
  const [maxConsoleLogs, setMaxConsoleLogs] = (0, react_1.useState)(100);
239
185
  const [showConsoleLevels, setShowConsoleLevels] = (0, react_1.useState)({
240
186
  info: true,
@@ -275,9 +221,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
275
221
  logs: true,
276
222
  analytics: false,
277
223
  redux: false,
278
- storage: false,
279
- device: false,
280
- audit: false,
281
224
  bundle: false,
282
225
  performance: false,
283
226
  crash: false,
@@ -332,9 +275,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
332
275
  logs: true,
333
276
  analytics: false,
334
277
  redux: false,
335
- storage: false,
336
- device: false,
337
- audit: false,
338
278
  bundle: false,
339
279
  performance: false,
340
280
  crash: false,
@@ -372,24 +312,14 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
372
312
  setModalHeightPercent(saved.modalHeightPercent);
373
313
  if (saved.modalAnimationType)
374
314
  setModalAnimationType(saved.modalAnimationType);
375
- if (saved.tabVisibility) {
376
- const savedVis = saved.tabVisibility;
315
+ if (saved.tabVisibility)
377
316
  setTabVisibility(prev => ({
378
317
  ...prev,
379
- ...savedVis,
380
- storage: savedVis.storage ?? false,
381
- device: savedVis.device ?? false,
382
- audit: savedVis.audit ?? false,
318
+ ...saved.tabVisibility,
383
319
  apis: true, // APIs is always required
384
320
  }));
385
- }
386
- if (initialTab) {
387
- setActiveTab(initialTab);
388
- }
389
- else if (saved.defaultTab) {
321
+ if (saved.defaultTab)
390
322
  setDefaultTab(saved.defaultTab);
391
- setActiveTab(saved.defaultTab);
392
- }
393
323
  if (saved.isAutoRamLimitEnabled != null)
394
324
  setIsAutoRamLimitEnabled(saved.isAutoRamLimitEnabled);
395
325
  if (saved.maxNetworkLogs != null)
@@ -410,10 +340,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
410
340
  setShowDuplicateLogs(saved.showDuplicateLogs);
411
341
  if (saved.showUpdateToast != null)
412
342
  setShowUpdateToast(saved.showUpdateToast);
413
- if (initialTab) {
414
- setActiveTab(initialTab);
415
- }
416
- else if (saved.defaultTab) {
343
+ if (saved.defaultTab) {
417
344
  const dt = saved.defaultTab;
418
345
  const vis = {
419
346
  ...{
@@ -421,9 +348,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
421
348
  logs: true,
422
349
  analytics: false,
423
350
  redux: false,
424
- storage: false,
425
- device: false,
426
- audit: false,
427
351
  bundle: false,
428
352
  performance: false,
429
353
  crash: false,
@@ -892,12 +816,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
892
816
  ? defaultTab
893
817
  : 'apis';
894
818
  setActiveTab(target);
895
- setSelected(null);
896
- setSelectedEvent(null);
897
- setSelectedLog(null);
898
- setSelectedReduxSlice(null);
899
- setSelectedReduxAction(null);
900
- setSelectedCrash(null);
901
819
  // Track inspector opened event in GA4
902
820
  (0, helpers_1.trackInspectorOpen)({ activeTab: target });
903
821
  // Instant synchronization of data collected while modal was closed
@@ -1877,20 +1795,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
1877
1795
  setCrashRecords([]);
1878
1796
  setSelectedCrash(null);
1879
1797
  },
1880
- // ─── Storage ─────────────────────────────────────────────────────────
1881
- storageEntries,
1882
- refreshStorageEntries,
1883
- updateStorageEntry,
1884
- deleteStorageEntry,
1885
- clearAllStorageEntries,
1886
- selectedStorageKey,
1887
- setSelectedStorageKey,
1888
- // ─── Device ──────────────────────────────────────────────────────────
1889
- deviceInfo,
1890
- // ─── Audit / Code Quality ─────────────────────────────────────────────
1891
- auditReport,
1892
- refreshAuditReport,
1893
- logCustomAuditIssue,
1894
1798
  // ─── Settings ───────────────────────────────────────────────────────
1895
1799
  settingsActiveSubTab,
1896
1800
  setSettingsActiveSubTab,
@@ -1915,17 +1819,13 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
1915
1819
  isAutoRamLimitEnabled,
1916
1820
  setIsAutoRamLimitEnabled,
1917
1821
  deviceFreeRamMb,
1918
- isPerformanceHudEnabled,
1919
- setIsPerformanceHudEnabled,
1920
1822
  reduxAutoRefresh,
1921
1823
  setReduxAutoRefreshState,
1922
1824
  reduxExpandDepth,
1923
1825
  setReduxExpandDepth,
1924
1826
  };
1925
1827
  return (<InspectorContext_1.InspectorContext.Provider value={contextValue}>
1926
- <react_native_1.View style={react_native_1.StyleSheet.absoluteFill} pointerEvents="box-none">
1927
- <MainScreen_1.default />
1928
- </react_native_1.View>
1828
+ <MainScreen_1.default />
1929
1829
  </InspectorContext_1.InspectorContext.Provider>);
1930
1830
  };
1931
1831
  const NetworkInspectorWrapper = (props) => {
@@ -2037,10 +1937,6 @@ Object.defineProperty(exports, "trackTabSwitch", { enumerable: true, get: functi
2037
1937
  Object.defineProperty(exports, "trackLogExport", { enumerable: true, get: function () { return helpers_2.trackLogExport; } });
2038
1938
  Object.defineProperty(exports, "GA4_MEASUREMENT_ID", { enumerable: true, get: function () { return helpers_2.GA4_MEASUREMENT_ID; } });
2039
1939
  Object.defineProperty(exports, "GA4_API_SECRET", { enumerable: true, get: function () { return helpers_2.GA4_API_SECRET; } });
2040
- var packageAuditor_2 = require("./helpers/packageAuditor");
2041
- Object.defineProperty(exports, "runLivePackageAudit", { enumerable: true, get: function () { return packageAuditor_2.runLivePackageAudit; } });
2042
- Object.defineProperty(exports, "logCodeQualityIssue", { enumerable: true, get: function () { return packageAuditor_2.logCodeQualityIssue; } });
2043
- Object.defineProperty(exports, "clearCustomAuditIssues", { enumerable: true, get: function () { return packageAuditor_2.clearCustomAuditIssues; } });
2044
1940
  var NetworkIcons_1 = require("./components/NetworkIcons");
2045
1941
  Object.defineProperty(exports, "BrandSquareIcon", { enumerable: true, get: function () { return NetworkIcons_1.BrandSquareIcon; } });
2046
1942
  Object.defineProperty(exports, "BrandCircleIcon", { enumerable: true, get: function () { return NetworkIcons_1.BrandCircleIcon; } });
@@ -14,7 +14,6 @@ export interface NativeDeviceMetrics {
14
14
  isCharging?: boolean;
15
15
  deviceModel?: string;
16
16
  deviceBrand?: string;
17
- deviceId?: string;
18
17
  osVersion?: string;
19
18
  apiLevel?: number;
20
19
  cpuAbi?: string;
@@ -3,9 +3,6 @@ export declare const ActiveTab: {
3
3
  readonly Analytics: "analytics";
4
4
  readonly Logs: "logs";
5
5
  readonly Redux: "redux";
6
- readonly Storage: "storage";
7
- readonly Device: "device";
8
- readonly Audit: "audit";
9
6
  readonly Bundle: "bundle";
10
7
  readonly Performance: "performance";
11
8
  readonly Crash: "crash";
@@ -52,9 +49,6 @@ export declare const SettingsPage: {
52
49
  readonly Logs: "logs";
53
50
  readonly Analytics: "analytics";
54
51
  readonly Redux: "redux";
55
- readonly Storage: "storage";
56
- readonly Device: "device";
57
- readonly Audit: "audit";
58
52
  readonly Bundle: "bundle";
59
53
  readonly Performance: "performance";
60
54
  readonly Crash: "crash";
@@ -62,7 +56,6 @@ export declare const SettingsPage: {
62
56
  export type SettingsPage = (typeof SettingsPage)[keyof typeof SettingsPage] | null;
63
57
  export declare const SettingsSubTab: {
64
58
  readonly Module: "module";
65
- readonly Limits: "limits";
66
59
  readonly Ui: "ui";
67
60
  };
68
61
  export type SettingsSubTab = (typeof SettingsSubTab)[keyof typeof SettingsSubTab];
@@ -9,9 +9,6 @@ exports.ActiveTab = {
9
9
  Analytics: 'analytics',
10
10
  Logs: 'logs',
11
11
  Redux: 'redux',
12
- Storage: 'storage',
13
- Device: 'device',
14
- Audit: 'audit',
15
12
  Bundle: 'bundle',
16
13
  Performance: 'performance',
17
14
  Crash: 'crash',
@@ -52,16 +49,12 @@ exports.SettingsPage = {
52
49
  Logs: 'logs',
53
50
  Analytics: 'analytics',
54
51
  Redux: 'redux',
55
- Storage: 'storage',
56
- Device: 'device',
57
- Audit: 'audit',
58
52
  Bundle: 'bundle',
59
53
  Performance: 'performance',
60
54
  Crash: 'crash',
61
55
  };
62
56
  exports.SettingsSubTab = {
63
57
  Module: 'module',
64
- Limits: 'limits',
65
58
  Ui: 'ui',
66
59
  };
67
60
  exports.LogFilter = {
@@ -3,64 +3,6 @@ import { ViewStyle } from 'react-native';
3
3
  import { Animated, PanResponderInstance } from 'react-native';
4
4
  import type { ActiveTab, BreadcrumbType, CrashType, GroupedListItem, LocalFilter, LogFilter, Method, SettingsPage, SettingsSubTab, SortOrder, StatusFilter } from './index';
5
5
  export type SearchScope = 'all' | 'url' | 'reqBody' | 'resBody' | 'headers';
6
- export interface StorageEntry {
7
- key: string;
8
- value: string;
9
- sizeBytes: number;
10
- isJson: boolean;
11
- parsedJson?: any;
12
- updatedAt: number;
13
- }
14
- export interface DeviceInfoData {
15
- appName: string;
16
- bundleId: string;
17
- appVersion: string;
18
- buildNumber: string;
19
- reactNativeVersion: string;
20
- jsEngine: string;
21
- isHermes: boolean;
22
- isFabric: boolean;
23
- isTurboModule: boolean;
24
- platform: 'ios' | 'android' | 'windows' | 'macos' | 'web';
25
- osVersion: string;
26
- deviceModel: string;
27
- deviceId?: string;
28
- isDevice: boolean;
29
- screenWidth: number;
30
- screenHeight: number;
31
- screenScale: number;
32
- screenFontScale: number;
33
- statusBarHeight: number;
34
- memoryMb?: number;
35
- arch?: string;
36
- locale?: string;
37
- timeZone?: string;
38
- }
39
- export type AuditSeverity = 'critical' | 'warning' | 'info' | 'optimal';
40
- export type AuditCategory = 'dependency' | 'typescript' | 'peer' | 'performance' | 'security';
41
- export interface AuditIssue {
42
- id: string;
43
- title: string;
44
- message: string;
45
- severity: AuditSeverity;
46
- category: AuditCategory;
47
- packageName?: string;
48
- currentVersion?: string;
49
- requiredVersion?: string;
50
- fixCommand?: string;
51
- fixSnippet?: string;
52
- timestamp: number;
53
- }
54
- export interface PackageHealthReport {
55
- score: number;
56
- grade: 'A+' | 'A' | 'B' | 'C' | 'D';
57
- totalIssues: number;
58
- criticalCount: number;
59
- warningCount: number;
60
- infoCount: number;
61
- issues: AuditIssue[];
62
- scannedAt: number;
63
- }
64
6
  export interface ParsedStackFrame {
65
7
  method: string;
66
8
  file: string;
@@ -222,8 +164,6 @@ export interface NetworkInspectorProps {
222
164
  environment?: 'DEV' | 'UAT' | 'PrePROD' | 'PROD' | 'QA' | 'Staging' | string;
223
165
  initialVisible?: boolean;
224
166
  visible?: boolean;
225
- initialTab?: ActiveTab;
226
- enablePerformanceHud?: boolean;
227
167
  }
228
168
  export interface NavigationTrackerProps {
229
169
  onStateChange: (state: any) => void;
@@ -236,8 +176,6 @@ export interface InspectorContextValue {
236
176
  isEnabled: boolean;
237
177
  appIcon?: any;
238
178
  environment?: string;
239
- isPerformanceHudEnabled: boolean;
240
- setIsPerformanceHudEnabled: React.Dispatch<React.SetStateAction<boolean>>;
241
179
  modalHeightPercent: number;
242
180
  setModalHeightPercent: React.Dispatch<React.SetStateAction<number>>;
243
181
  modalAnimationType: 'slide' | 'fade' | 'none';
@@ -367,17 +305,6 @@ export interface InspectorContextValue {
367
305
  maxCrashLogs: number;
368
306
  setMaxCrashLogs: React.Dispatch<React.SetStateAction<number>>;
369
307
  clearAllCrashes: () => void;
370
- storageEntries: StorageEntry[];
371
- refreshStorageEntries: () => Promise<void>;
372
- updateStorageEntry: (key: string, value: string) => Promise<void>;
373
- deleteStorageEntry: (key: string) => Promise<void>;
374
- clearAllStorageEntries: () => Promise<void>;
375
- selectedStorageKey: string | null;
376
- setSelectedStorageKey: React.Dispatch<React.SetStateAction<string | null>>;
377
- deviceInfo: DeviceInfoData;
378
- auditReport: PackageHealthReport;
379
- refreshAuditReport: () => void;
380
- logCustomAuditIssue: (issue: Omit<AuditIssue, 'id' | 'timestamp'>) => void;
381
308
  settingsActiveSubTab: SettingsSubTab;
382
309
  setSettingsActiveSubTab: React.Dispatch<React.SetStateAction<SettingsSubTab>>;
383
310
  defaultTab: ActiveTab;
@@ -14,7 +14,7 @@ import { getTelemetryConsentStatus } from '../../helpers/telemetry';
14
14
  import { UpdateAvailableModal } from './UpdateAvailableModal';
15
15
  import { WhiteBackNavigation, TrashIcon, SettingsIcon, CloseWhite, ClockIcon, SizeIcon, AppleIcon, AndroidIcon, NpmIcon, ResetIcon, } from '../NetworkIcons';
16
16
  const InspectorHeader = React.memo(() => {
17
- const { modalHeightPercent, appIcon, selected, setSelected, selectedEvent, setSelectedEvent, selectedLog, setSelectedLog, selectedReduxSlice, setSelectedReduxSlice, selectedReduxAction, setSelectedReduxAction, reduxState, reduxLastActionMap, showHeaderInfo, setShowHeaderInfo, updateAvailable, latestNpmVersion, clearAnim, activePulseAnim, unreadPulseAnim, runClearAllWithAnimation, settingsPage, setSettingsPage, resetToDefaults, closeModal, detailTitle, activeTab, environment, visible, selectedCrash, setSelectedCrash, deviceInfo, } = useInspector();
17
+ const { modalHeightPercent, appIcon, selected, setSelected, selectedEvent, setSelectedEvent, selectedLog, setSelectedLog, selectedReduxSlice, setSelectedReduxSlice, selectedReduxAction, setSelectedReduxAction, reduxState, reduxLastActionMap, showHeaderInfo, setShowHeaderInfo, updateAvailable, latestNpmVersion, clearAnim, activePulseAnim, unreadPulseAnim, runClearAllWithAnimation, settingsPage, setSettingsPage, resetToDefaults, closeModal, detailTitle, activeTab, environment, visible, selectedCrash, setSelectedCrash, } = useInspector();
18
18
  const [showUpdateModal, setShowUpdateModal] = React.useState(false);
19
19
  const [isTelemetryActive, setIsTelemetryActive] = React.useState(false);
20
20
  const telemetryPulseAnim = React.useRef(new Animated.Value(1)).current;
@@ -264,44 +264,38 @@ const InspectorHeader = React.memo(() => {
264
264
  </Pressable>)}
265
265
  </View>
266
266
 
267
- {/* OS & NPM Version Common Chip Bar */}
267
+ {/* OS & NPM Version Representation */}
268
268
  <View style={{
269
269
  flexDirection: 'row',
270
270
  alignItems: 'center',
271
271
  gap: 5,
272
272
  minWidth: 0,
273
273
  }}>
274
- {/* Unified Platform & Build Chip */}
275
274
  <View style={{
276
275
  flexDirection: 'row',
277
276
  alignItems: 'center',
278
- backgroundColor: 'rgba(255, 255, 255, 0.16)',
279
- borderRadius: 6,
280
- paddingHorizontal: 6.5,
281
- paddingVertical: 2.5,
282
- gap: 4.5,
277
+ backgroundColor: `${AppColors.white}1F`,
278
+ borderRadius: 5,
279
+ paddingHorizontal: 6,
280
+ paddingVertical: 2,
281
+ gap: 4,
283
282
  borderWidth: 1,
284
- borderColor: 'rgba(255, 255, 255, 0.28)',
283
+ borderColor: `${AppColors.white}2E`,
285
284
  flexShrink: 0,
286
285
  }}>
287
- {Platform.OS === 'ios' ? (<AppleIcon color="#FFFFFF" size={10.5}/>) : (<AndroidIcon color="#FFFFFF" size={10.5}/>)}
286
+ {Platform.OS === 'ios' ? (<AppleIcon color={`${AppColors.white}E6`} size={10}/>) : (<AndroidIcon color={`${AppColors.white}E6`} size={10}/>)}
288
287
  <Text style={{
289
- fontFamily: AppFonts.interBold,
288
+ fontFamily: AppFonts.interMedium,
290
289
  fontSize: 9.5,
291
- color: '#FFFFFF',
290
+ color: `${AppColors.white}EB`,
292
291
  letterSpacing: 0.1,
293
292
  }} numberOfLines={1}>
294
293
  {Platform.OS === 'ios'
295
- ? `iOS ${String(deviceInfo?.osVersion || Platform.Version).replace(/^(ios\s*)+/i, '').trim()}${deviceInfo?.buildNumber || deviceInfo?.appVersion
296
- ? ` (${deviceInfo.buildNumber || deviceInfo.appVersion})`
297
- : ''}`
298
- : `Android ${String(deviceInfo?.osVersion || Platform.Version).replace(/^(android\s*)+/i, '').trim()}${deviceInfo?.buildNumber || deviceInfo?.appVersion
299
- ? ` (${deviceInfo.buildNumber || deviceInfo.appVersion})`
300
- : ''}`}
294
+ ? `iOS ${Platform.Version}`
295
+ : `Android ${Platform.Version}`}
301
296
  </Text>
302
297
  </View>
303
298
 
304
- {/* Unified NPM Version Chip */}
305
299
  <Pressable onPress={() => {
306
300
  if (updateAvailable) {
307
301
  setShowUpdateModal(true);
@@ -310,23 +304,26 @@ const InspectorHeader = React.memo(() => {
310
304
  Linking.openURL('https://www.npmjs.com/package/react-native-inapp-inspector').catch(() => { });
311
305
  }
312
306
  }} style={{
313
- backgroundColor: 'rgba(255, 255, 255, 0.16)',
314
- borderRadius: 6,
315
- paddingHorizontal: 6.5,
316
- paddingVertical: 2.5,
307
+ backgroundColor: '#FFFFFF',
308
+ borderRadius: 5,
309
+ paddingHorizontal: 6,
310
+ paddingVertical: 2,
317
311
  flexDirection: 'row',
318
312
  alignItems: 'center',
319
313
  gap: 4,
320
- borderWidth: 1,
321
- borderColor: 'rgba(255, 255, 255, 0.28)',
322
314
  flexShrink: 0,
315
+ shadowColor: '#000000',
316
+ shadowOffset: { width: 0, height: 1 },
317
+ shadowOpacity: 0.15,
318
+ shadowRadius: 2,
319
+ elevation: 2,
323
320
  }}>
324
- <NpmIcon size={11} color="#FF6B6B"/>
321
+ <NpmIcon size={11} color="#CB3837"/>
325
322
  <Text style={{
326
323
  fontFamily: AppFonts.interBold,
327
324
  fontSize: 9.5,
328
- color: '#FFFFFF',
329
- letterSpacing: 0.15,
325
+ color: '#CB3837',
326
+ letterSpacing: 0.2,
330
327
  }} numberOfLines={1}>
331
328
  v{LIB_VERSION}
332
329
  </Text>
@@ -17,9 +17,6 @@ import BundleTab from './BundleTab';
17
17
  import PerformanceTab from './PerformanceTab';
18
18
  import CrashTab from './CrashTab';
19
19
  import CrashDetail from './CrashDetail';
20
- import StorageTab from './StorageTab';
21
- import DeviceTab from './DeviceTab';
22
- import AuditTab from './AuditTab';
23
20
  import SettingsPanel from './SettingsPanel';
24
21
  import TelemetryConsentModal from './TelemetryConsentModal';
25
22
  import NpmUpdateToast from './NpmUpdateToast';
@@ -27,9 +24,8 @@ import Toast from '../Toast';
27
24
  import styles from '../../styles';
28
25
  import { AppColors } from '../../styles/AppColors';
29
26
  import NavigationTracker from './NavigationTracker';
30
- import PerformanceHud from './PerformanceHud';
31
27
  const MainScreen = () => {
32
- const { visible, setVisible, switchActiveTab, modalAnimationType, closeModal, modalHeightPercent, selected, selectedEvent, selectedLog, selectedReduxSlice, selectedReduxAction, selectedCrash, settingsPage, activeTab, isReady, isEnabled, isPerformanceHudEnabled, useNativeFab, hasNavigationContext, setNavState, } = useInspector();
28
+ const { visible, modalAnimationType, closeModal, modalHeightPercent, selected, selectedEvent, selectedLog, selectedReduxSlice, selectedReduxAction, selectedCrash, settingsPage, activeTab, isReady, isEnabled, useNativeFab, hasNavigationContext, setNavState, } = useInspector();
33
29
  const isDetailActive = (activeTab === 'apis' && selected != null) ||
34
30
  (activeTab === 'analytics' && selectedEvent != null) ||
35
31
  (activeTab === 'logs' && selectedLog != null) ||
@@ -70,16 +66,10 @@ const MainScreen = () => {
70
66
  }).start();
71
67
  }, [activeTab]);
72
68
  return (<>
73
- <View pointerEvents="box-none" style={StyleSheet.absoluteFillObject}>
74
- {(Platform.OS === 'ios' || Platform.OS === 'android') &&
69
+ {(Platform.OS === 'ios' || Platform.OS === 'android') &&
75
70
  isEnabled &&
76
71
  !visible &&
77
72
  !useNativeFab && <FabLauncher />}
78
- {isEnabled && !visible && isPerformanceHudEnabled && (<PerformanceHud visible={true} onPress={() => {
79
- setVisible(true);
80
- switchActiveTab('performance');
81
- }}/>)}
82
- </View>
83
73
  <Modal visible={visible} animationType={modalAnimationType} transparent statusBarTranslucent={true}>
84
74
  {visible && (<ErrorBoundary onClose={closeModal}>
85
75
  <View style={styles.modalBackdrop}>
@@ -123,9 +113,6 @@ const MainScreen = () => {
123
113
  {activeTab === 'logs' && <ConsoleTab />}
124
114
  {activeTab === 'analytics' && <AnalyticsTab />}
125
115
  {activeTab === 'redux' && <ReduxTab />}
126
- {activeTab === 'storage' && <StorageTab />}
127
- {activeTab === 'device' && <DeviceTab />}
128
- {activeTab === 'audit' && <AuditTab />}
129
116
  {activeTab === 'bundle' && <BundleTab />}
130
117
  {activeTab === 'performance' && <PerformanceTab />}
131
118
  {activeTab === 'crash' && <CrashTab />}