react-native-inapp-inspector 2.3.5 → 2.3.6
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/dist/commonjs/analytics.d.ts +0 -4
- package/dist/commonjs/analytics.js +0 -4
- package/dist/commonjs/bundle.d.ts +0 -4
- package/dist/commonjs/bundle.js +0 -4
- package/dist/commonjs/components/AnalyticsDetail.js +18 -27
- package/dist/commonjs/components/AnalyticsEventCard.js +9 -12
- package/dist/commonjs/components/AnalyticsGraph.js +10 -15
- package/dist/commonjs/components/AppHeaderLogo.js +0 -3
- package/dist/commonjs/components/BrandCircleIcon.js +15 -15
- package/dist/commonjs/components/BrandSquareIcon.js +20 -20
- package/dist/commonjs/components/CodeSnippet.js +6 -19
- package/dist/commonjs/components/ConsoleLogCard.js +0 -1
- package/dist/commonjs/components/CopyButton.js +0 -4
- package/dist/commonjs/components/DiffViewer.js +0 -2
- package/dist/commonjs/components/DomainHeader.js +0 -4
- package/dist/commonjs/components/EmptyState.js +0 -3
- package/dist/commonjs/components/ErrorBoundary.js +5 -10
- package/dist/commonjs/components/HeadersSection.js +0 -5
- package/dist/commonjs/components/HighlightText.js +1 -4
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +11 -26
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +34 -40
- package/dist/commonjs/components/Inspector/BundleTab.js +56 -84
- package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
- package/dist/commonjs/components/Inspector/CrashDetail.js +18 -20
- package/dist/commonjs/components/Inspector/CrashFilterModal.js +0 -1
- package/dist/commonjs/components/Inspector/CrashTab.js +11 -20
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +12 -24
- package/dist/commonjs/components/Inspector/FabLauncher.js +1 -1
- package/dist/commonjs/components/Inspector/InspectorContext.js +0 -2
- package/dist/commonjs/components/Inspector/InspectorHeader.js +7 -8
- package/dist/commonjs/components/Inspector/LogDetail.js +27 -29
- package/dist/commonjs/components/Inspector/MainScreen.js +9 -10
- package/dist/commonjs/components/Inspector/NetworkDetail.js +10 -11
- package/dist/commonjs/components/Inspector/NetworkTab.js +14 -14
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +6 -9
- package/dist/commonjs/components/Inspector/PerformanceTab.js +30 -43
- package/dist/commonjs/components/Inspector/ReduxDetail.js +18 -34
- package/dist/commonjs/components/Inspector/ReduxTab.js +11 -20
- package/dist/commonjs/components/Inspector/SettingsPanel.js +32 -36
- package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +6 -6
- package/dist/commonjs/components/Inspector/StorageTab.js +14 -26
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +5 -6
- package/dist/commonjs/components/JsonViewer.js +3 -10
- package/dist/commonjs/components/LogCard.js +7 -7
- package/dist/commonjs/components/MetaAccordion.js +1 -7
- package/dist/commonjs/components/NetworkIcons.js +12 -16
- package/dist/commonjs/components/SectionHeader.js +0 -4
- package/dist/commonjs/components/SkeletonPlaceholder.js +6 -6
- package/dist/commonjs/components/Slider.js +6 -6
- package/dist/commonjs/components/SourcePageCard.js +0 -4
- package/dist/commonjs/components/TreeNode.js +0 -4
- package/dist/commonjs/console.d.ts +0 -4
- package/dist/commonjs/console.js +0 -4
- package/dist/commonjs/constants/index.js +6 -9
- package/dist/commonjs/constants/telemetryConfig.d.ts +7 -0
- package/dist/commonjs/constants/telemetryConfig.js +10 -0
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -3
- package/dist/commonjs/crash.d.ts +0 -4
- package/dist/commonjs/crash.js +0 -4
- package/dist/commonjs/customHooks/analyticsLogger.d.ts +0 -7
- package/dist/commonjs/customHooks/analyticsLogger.js +3 -59
- package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -9
- package/dist/commonjs/customHooks/bundleAnalyzer.js +3 -86
- package/dist/commonjs/customHooks/consoleLogger.js +0 -16
- package/dist/commonjs/customHooks/crashHandler.d.ts +0 -28
- package/dist/commonjs/customHooks/crashHandler.js +0 -55
- package/dist/commonjs/customHooks/logFilters.d.ts +0 -4
- package/dist/commonjs/customHooks/logFilters.js +0 -11
- package/dist/commonjs/customHooks/networkLogger.js +2 -13
- package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -27
- package/dist/commonjs/customHooks/performanceTracker.js +0 -31
- package/dist/commonjs/customHooks/reduxLogger.d.ts +0 -12
- package/dist/commonjs/customHooks/reduxLogger.js +0 -51
- package/dist/commonjs/customHooks/storageInspector.d.ts +0 -40
- package/dist/commonjs/customHooks/storageInspector.js +1 -56
- package/dist/commonjs/decorators/index.d.ts +0 -37
- package/dist/commonjs/decorators/index.js +0 -42
- package/dist/commonjs/helpers/gaAnalyticsRegistry.d.ts +0 -10
- package/dist/commonjs/helpers/gaAnalyticsRegistry.js +0 -26
- package/dist/commonjs/helpers/index.d.ts +0 -7
- package/dist/commonjs/helpers/index.js +1 -42
- package/dist/commonjs/helpers/memoryManager.d.ts +0 -11
- package/dist/commonjs/helpers/memoryManager.js +0 -13
- package/dist/commonjs/helpers/searchQueryParser.d.ts +0 -4
- package/dist/commonjs/helpers/searchQueryParser.js +0 -18
- package/dist/commonjs/helpers/settingsStore.js +0 -8
- package/dist/commonjs/helpers/telemetry.d.ts +2 -0
- package/dist/commonjs/helpers/telemetry.js +302 -0
- package/dist/commonjs/i18n/index.d.ts +0 -9
- package/dist/commonjs/i18n/index.js +0 -15
- package/dist/commonjs/index.js +15 -97
- package/dist/commonjs/native/NativeInspector.d.ts +0 -54
- package/dist/commonjs/native/NativeInspector.js +0 -56
- package/dist/commonjs/network.d.ts +0 -4
- package/dist/commonjs/network.js +0 -4
- package/dist/commonjs/performance.d.ts +0 -4
- package/dist/commonjs/performance.js +0 -4
- package/dist/commonjs/redux.d.ts +0 -4
- package/dist/commonjs/redux.js +0 -4
- package/dist/commonjs/storage.d.ts +0 -4
- package/dist/commonjs/storage.js +0 -4
- package/dist/commonjs/styles/AppColors.d.ts +0 -3
- package/dist/commonjs/styles/AppColors.js +15 -30
- package/dist/commonjs/styles/AppFonts.d.ts +0 -4
- package/dist/commonjs/styles/AppFonts.js +0 -4
- package/dist/commonjs/styles/common.js +0 -11
- package/dist/commonjs/styles/index.js +0 -8
- package/dist/commonjs/types/enums.js +0 -3
- package/dist/commonjs/types/interfaces.d.ts +3 -3
- package/dist/esm/analytics.d.ts +0 -4
- package/dist/esm/analytics.js +0 -4
- package/dist/esm/bundle.d.ts +0 -4
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/components/AnalyticsDetail.js +18 -27
- package/dist/esm/components/AnalyticsEventCard.js +9 -12
- package/dist/esm/components/AnalyticsGraph.js +10 -15
- package/dist/esm/components/AppHeaderLogo.js +0 -3
- package/dist/esm/components/BrandCircleIcon.js +15 -15
- package/dist/esm/components/BrandSquareIcon.js +20 -20
- package/dist/esm/components/CodeSnippet.js +6 -19
- package/dist/esm/components/ConsoleLogCard.js +0 -1
- package/dist/esm/components/CopyButton.js +0 -4
- package/dist/esm/components/DiffViewer.js +0 -2
- package/dist/esm/components/DomainHeader.js +0 -4
- package/dist/esm/components/EmptyState.js +0 -3
- package/dist/esm/components/ErrorBoundary.js +5 -10
- package/dist/esm/components/HeadersSection.js +0 -5
- package/dist/esm/components/HighlightText.js +1 -4
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +11 -26
- package/dist/esm/components/Inspector/AnalyticsTab.js +34 -40
- package/dist/esm/components/Inspector/BundleTab.js +56 -84
- package/dist/esm/components/Inspector/ConsoleTab.js +7 -7
- package/dist/esm/components/Inspector/CrashDetail.js +18 -20
- package/dist/esm/components/Inspector/CrashFilterModal.js +0 -1
- package/dist/esm/components/Inspector/CrashTab.js +11 -20
- package/dist/esm/components/Inspector/DeviceInfoTab.js +12 -24
- package/dist/esm/components/Inspector/FabLauncher.js +1 -1
- package/dist/esm/components/Inspector/InspectorContext.js +0 -2
- package/dist/esm/components/Inspector/InspectorHeader.js +7 -8
- package/dist/esm/components/Inspector/LogDetail.js +27 -29
- package/dist/esm/components/Inspector/MainScreen.js +9 -10
- package/dist/esm/components/Inspector/NetworkDetail.js +10 -11
- package/dist/esm/components/Inspector/NetworkTab.js +14 -14
- package/dist/esm/components/Inspector/NpmUpdateToast.js +6 -9
- package/dist/esm/components/Inspector/PerformanceTab.js +30 -43
- package/dist/esm/components/Inspector/ReduxDetail.js +18 -34
- package/dist/esm/components/Inspector/ReduxTab.js +11 -20
- package/dist/esm/components/Inspector/SettingsPanel.js +32 -36
- package/dist/esm/components/Inspector/SkeletonPlaceholder.js +6 -6
- package/dist/esm/components/Inspector/StorageTab.js +14 -26
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +5 -6
- package/dist/esm/components/JsonViewer.js +3 -10
- package/dist/esm/components/LogCard.js +7 -7
- package/dist/esm/components/MetaAccordion.js +1 -7
- package/dist/esm/components/NetworkIcons.js +12 -16
- package/dist/esm/components/SectionHeader.js +0 -4
- package/dist/esm/components/SkeletonPlaceholder.js +6 -6
- package/dist/esm/components/Slider.js +6 -6
- package/dist/esm/components/SourcePageCard.js +0 -4
- package/dist/esm/components/TreeNode.js +0 -4
- package/dist/esm/console.d.ts +0 -4
- package/dist/esm/console.js +0 -4
- package/dist/esm/constants/index.js +6 -9
- package/dist/esm/constants/telemetryConfig.d.ts +7 -0
- package/dist/esm/constants/telemetryConfig.js +7 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -3
- package/dist/esm/crash.d.ts +0 -4
- package/dist/esm/crash.js +0 -4
- package/dist/esm/customHooks/analyticsLogger.d.ts +0 -7
- package/dist/esm/customHooks/analyticsLogger.js +3 -59
- package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -9
- package/dist/esm/customHooks/bundleAnalyzer.js +3 -86
- package/dist/esm/customHooks/consoleLogger.js +0 -16
- package/dist/esm/customHooks/crashHandler.d.ts +0 -28
- package/dist/esm/customHooks/crashHandler.js +0 -55
- package/dist/esm/customHooks/logFilters.d.ts +0 -4
- package/dist/esm/customHooks/logFilters.js +0 -11
- package/dist/esm/customHooks/networkLogger.js +2 -13
- package/dist/esm/customHooks/performanceTracker.d.ts +0 -27
- package/dist/esm/customHooks/performanceTracker.js +0 -31
- package/dist/esm/customHooks/reduxLogger.d.ts +0 -12
- package/dist/esm/customHooks/reduxLogger.js +0 -51
- package/dist/esm/customHooks/storageInspector.d.ts +0 -40
- package/dist/esm/customHooks/storageInspector.js +1 -56
- package/dist/esm/decorators/index.d.ts +0 -37
- package/dist/esm/decorators/index.js +0 -42
- package/dist/esm/helpers/gaAnalyticsRegistry.d.ts +0 -10
- package/dist/esm/helpers/gaAnalyticsRegistry.js +0 -26
- package/dist/esm/helpers/index.d.ts +0 -7
- package/dist/esm/helpers/index.js +1 -42
- package/dist/esm/helpers/memoryManager.d.ts +0 -11
- package/dist/esm/helpers/memoryManager.js +0 -13
- package/dist/esm/helpers/searchQueryParser.d.ts +0 -4
- package/dist/esm/helpers/searchQueryParser.js +0 -18
- package/dist/esm/helpers/settingsStore.js +0 -8
- package/dist/esm/helpers/telemetry.d.ts +2 -0
- package/dist/esm/helpers/telemetry.js +298 -0
- package/dist/esm/i18n/index.d.ts +0 -9
- package/dist/esm/i18n/index.js +0 -15
- package/dist/esm/index.js +15 -97
- package/dist/esm/native/NativeInspector.d.ts +0 -54
- package/dist/esm/native/NativeInspector.js +0 -56
- package/dist/esm/network.d.ts +0 -4
- package/dist/esm/network.js +0 -4
- package/dist/esm/performance.d.ts +0 -4
- package/dist/esm/performance.js +0 -4
- package/dist/esm/redux.d.ts +0 -4
- package/dist/esm/redux.js +0 -4
- package/dist/esm/storage.d.ts +0 -4
- package/dist/esm/storage.js +0 -4
- package/dist/esm/styles/AppColors.d.ts +0 -3
- package/dist/esm/styles/AppColors.js +15 -30
- package/dist/esm/styles/AppFonts.d.ts +0 -4
- package/dist/esm/styles/AppFonts.js +0 -4
- package/dist/esm/styles/common.js +0 -11
- package/dist/esm/styles/index.js +0 -8
- package/dist/esm/types/enums.js +0 -3
- package/dist/esm/types/interfaces.d.ts +3 -3
- package/package.json +2 -2
- package/src/constants/telemetryConfig.ts +16 -0
- package/src/constants/version.ts +1 -1
- package/src/helpers/telemetry.ts +341 -0
- package/src/index.tsx +15 -1
- package/src/types/interfaces.ts +3 -0
|
@@ -67,7 +67,6 @@ const StorageEntryCard = react_1.default.memo(function StorageEntryCard({ entry,
|
|
|
67
67
|
? `${entry.byteSize} B`
|
|
68
68
|
: `${(entry.byteSize / 1024).toFixed(1)} KB`;
|
|
69
69
|
}, [entry.byteSize]);
|
|
70
|
-
// Lazy compute displayed value to avoid layout thrashing on large JSON strings
|
|
71
70
|
const displayValue = (0, react_1.useMemo)(() => {
|
|
72
71
|
if (!isExpanded) {
|
|
73
72
|
if (entry.value.length > 250) {
|
|
@@ -87,7 +86,7 @@ const StorageEntryCard = react_1.default.memo(function StorageEntryCard({ entry,
|
|
|
87
86
|
return entry.value;
|
|
88
87
|
}, [isExpanded, entry.value, entry.type, entry.parsedValue]);
|
|
89
88
|
return (<react_native_1.View style={styles.entryCard}>
|
|
90
|
-
|
|
89
|
+
|
|
91
90
|
<react_native_1.View style={styles.entryHeader}>
|
|
92
91
|
<react_native_1.View style={{ flex: 1, marginRight: 8 }}>
|
|
93
92
|
<react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6, flexWrap: 'wrap' }}>
|
|
@@ -106,7 +105,7 @@ const StorageEntryCard = react_1.default.memo(function StorageEntryCard({ entry,
|
|
|
106
105
|
</react_native_1.View>
|
|
107
106
|
</react_native_1.View>
|
|
108
107
|
|
|
109
|
-
|
|
108
|
+
|
|
110
109
|
<react_native_1.View style={styles.entryActions}>
|
|
111
110
|
<TouchableScale_1.default hitSlop={6} onPress={() => onCopy(entry)} style={styles.entryActionBtn}>
|
|
112
111
|
<NetworkIcons_1.CopyIcon size={12} color={AppColors_1.AppColors.grayText}/>
|
|
@@ -122,7 +121,7 @@ const StorageEntryCard = react_1.default.memo(function StorageEntryCard({ entry,
|
|
|
122
121
|
</react_native_1.View>
|
|
123
122
|
</react_native_1.View>
|
|
124
123
|
|
|
125
|
-
|
|
124
|
+
|
|
126
125
|
<TouchableScale_1.default onPress={() => onToggleExpand(entry.key)} style={styles.valuePreviewBox}>
|
|
127
126
|
<react_native_1.Text style={styles.valuePreviewText} numberOfLines={isExpanded ? undefined : 3} selectable={isExpanded}>
|
|
128
127
|
{displayValue}
|
|
@@ -141,7 +140,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
141
140
|
const [isLoading, setIsLoading] = (0, react_1.useState)(true);
|
|
142
141
|
const [search, setSearch] = (0, react_1.useState)('');
|
|
143
142
|
const [expandedKeys, setExpandedKeys] = (0, react_1.useState)({});
|
|
144
|
-
// Modal State for Create / Edit
|
|
145
143
|
const [modalVisible, setModalVisible] = (0, react_1.useState)(false);
|
|
146
144
|
const [modalMode, setModalMode] = (0, react_1.useState)('create');
|
|
147
145
|
const [editKeyName, setEditKeyName] = (0, react_1.useState)('');
|
|
@@ -149,7 +147,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
149
147
|
const [editType, setEditType] = (0, react_1.useState)('string');
|
|
150
148
|
const [jsonError, setJsonError] = (0, react_1.useState)(null);
|
|
151
149
|
const mmkvInstanceIds = (0, react_1.useMemo)(() => (0, storageInspector_1.getRegisteredMMKVInstanceIds)(), []);
|
|
152
|
-
// Fetch entries
|
|
153
150
|
const loadEntries = (0, react_1.useCallback)(async () => {
|
|
154
151
|
setIsLoading(true);
|
|
155
152
|
try {
|
|
@@ -168,11 +165,9 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
168
165
|
const unsubscribe = (0, storageInspector_1.subscribeToStorageChanges)(loadEntries);
|
|
169
166
|
return unsubscribe;
|
|
170
167
|
}, [loadEntries]);
|
|
171
|
-
// Toggle JSON accordion
|
|
172
168
|
const toggleExpand = (key) => {
|
|
173
169
|
setExpandedKeys(prev => ({ ...prev, [key]: !prev[key] }));
|
|
174
170
|
};
|
|
175
|
-
// Open Create Modal
|
|
176
171
|
const handleOpenCreate = () => {
|
|
177
172
|
setModalMode('create');
|
|
178
173
|
setEditKeyName('');
|
|
@@ -181,7 +176,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
181
176
|
setJsonError(null);
|
|
182
177
|
setModalVisible(true);
|
|
183
178
|
};
|
|
184
|
-
// Open Edit Modal
|
|
185
179
|
const handleOpenEdit = (entry) => {
|
|
186
180
|
setModalMode('edit');
|
|
187
181
|
setEditKeyName(entry.key);
|
|
@@ -190,7 +184,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
190
184
|
setJsonError(null);
|
|
191
185
|
setModalVisible(true);
|
|
192
186
|
};
|
|
193
|
-
// Delete single key
|
|
194
187
|
const handleDeleteKey = (key) => {
|
|
195
188
|
react_native_1.Alert.alert('Delete Storage Key', `Are you sure you want to permanently delete "${key}" from ${activeDriver === 'asyncStorage' ? 'AsyncStorage' : 'MMKV'}?`, [
|
|
196
189
|
{ text: 'Cancel', style: 'cancel' },
|
|
@@ -210,7 +203,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
210
203
|
},
|
|
211
204
|
]);
|
|
212
205
|
};
|
|
213
|
-
// Clear all keys
|
|
214
206
|
const handleClearAll = () => {
|
|
215
207
|
react_native_1.Alert.alert('Wipe All Storage Keys', `Are you sure you want to clear all ${entries.length} keys in ${activeDriver === 'asyncStorage' ? 'AsyncStorage' : 'MMKV'}? This cannot be undone.`, [
|
|
216
208
|
{ text: 'Cancel', style: 'cancel' },
|
|
@@ -227,7 +219,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
227
219
|
},
|
|
228
220
|
]);
|
|
229
221
|
};
|
|
230
|
-
// Save Modal (Create / Update)
|
|
231
222
|
const handleSaveModal = async () => {
|
|
232
223
|
if (!editKeyName.trim()) {
|
|
233
224
|
(0, toast_1.showToast)('Key name cannot be empty');
|
|
@@ -236,7 +227,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
236
227
|
let finalVal = editValue;
|
|
237
228
|
if (editType === 'json') {
|
|
238
229
|
try {
|
|
239
|
-
// Validate JSON
|
|
240
230
|
const parsed = JSON.parse(editValue);
|
|
241
231
|
finalVal = JSON.stringify(parsed);
|
|
242
232
|
}
|
|
@@ -261,7 +251,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
261
251
|
(0, toast_1.showToast)('Error saving storage key');
|
|
262
252
|
}
|
|
263
253
|
};
|
|
264
|
-
// Format / Beautify JSON in modal
|
|
265
254
|
const handleBeautifyJson = () => {
|
|
266
255
|
try {
|
|
267
256
|
const parsed = JSON.parse(editValue);
|
|
@@ -274,7 +263,6 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
274
263
|
setJsonError('Cannot format: invalid JSON syntax');
|
|
275
264
|
}
|
|
276
265
|
};
|
|
277
|
-
// Filter entries
|
|
278
266
|
const filteredEntries = (0, react_1.useMemo)(() => {
|
|
279
267
|
if (!search.trim())
|
|
280
268
|
return entries;
|
|
@@ -300,7 +288,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
300
288
|
? (0, storageInspector_1.isAsyncStorageConnected)()
|
|
301
289
|
: (0, storageInspector_1.isMMKVConnected)();
|
|
302
290
|
return (<react_native_1.View style={styles.container}>
|
|
303
|
-
|
|
291
|
+
|
|
304
292
|
<react_native_1.View style={styles.driverTabsWrapper}>
|
|
305
293
|
<react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={styles.driverTabsContainer}>
|
|
306
294
|
<TouchableScale_1.default onPress={() => setActiveDriver('asyncStorage')} style={[
|
|
@@ -339,7 +327,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
339
327
|
</react_native_1.View>)}
|
|
340
328
|
</TouchableScale_1.default>
|
|
341
329
|
|
|
342
|
-
|
|
330
|
+
|
|
343
331
|
{activeDriver === 'mmkv' && mmkvInstanceIds.length > 1 && (<react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 4, marginLeft: 6 }}>
|
|
344
332
|
{mmkvInstanceIds.map(id => (<TouchableScale_1.default key={id} onPress={() => setActiveMMKVId(id)} style={[
|
|
345
333
|
styles.instancePill,
|
|
@@ -356,7 +344,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
356
344
|
</react_native_1.ScrollView>
|
|
357
345
|
</react_native_1.View>
|
|
358
346
|
|
|
359
|
-
|
|
347
|
+
|
|
360
348
|
<react_native_1.View style={styles.actionBar}>
|
|
361
349
|
<react_native_1.View style={styles.searchBar}>
|
|
362
350
|
<NetworkIcons_1.SearchIcon size={14} color={AppColors_1.AppColors.grayTextWeak}/>
|
|
@@ -382,7 +370,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
382
370
|
</react_native_1.View>)}
|
|
383
371
|
</react_native_1.View>
|
|
384
372
|
|
|
385
|
-
|
|
373
|
+
|
|
386
374
|
<TouchableScale_1.default onPress={handleOpenCreate} style={styles.addKeyBtn} hitSlop={6}>
|
|
387
375
|
<NetworkIcons_1.PlusIcon size={13} color={AppColors_1.AppColors.white}/>
|
|
388
376
|
<react_native_1.Text style={styles.addKeyBtnText}>Add</react_native_1.Text>
|
|
@@ -397,7 +385,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
397
385
|
</TouchableScale_1.default>)}
|
|
398
386
|
</react_native_1.View>
|
|
399
387
|
|
|
400
|
-
|
|
388
|
+
|
|
401
389
|
<react_native_1.View style={styles.statsStrip}>
|
|
402
390
|
<react_native_1.Text style={styles.statsText}>
|
|
403
391
|
{filteredEntries.length} of {entries.length} Keys • {formattedTotalSize}
|
|
@@ -407,7 +395,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
407
395
|
</react_native_1.Text>
|
|
408
396
|
</react_native_1.View>
|
|
409
397
|
|
|
410
|
-
|
|
398
|
+
|
|
411
399
|
{isLoading ? (<react_native_1.View style={styles.loadingContainer}>
|
|
412
400
|
<react_native_1.ActivityIndicator size="small" color={AppColors_1.AppColors.purple}/>
|
|
413
401
|
<react_native_1.Text style={styles.loadingText}>Loading storage entries...</react_native_1.Text>
|
|
@@ -425,7 +413,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
425
413
|
</react_native_1.Text>
|
|
426
414
|
</react_native_1.View>} ListFooterComponent={<react_native_1.View style={{ height: 60 }}/>}/>)}
|
|
427
415
|
|
|
428
|
-
|
|
416
|
+
|
|
429
417
|
<react_native_1.Modal visible={modalVisible} transparent animationType="fade" onRequestClose={() => setModalVisible(false)}>
|
|
430
418
|
<react_native_1.View style={styles.modalOverlay}>
|
|
431
419
|
<react_native_1.View style={styles.modalCard}>
|
|
@@ -438,7 +426,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
438
426
|
</TouchableScale_1.default>
|
|
439
427
|
</react_native_1.View>
|
|
440
428
|
|
|
441
|
-
|
|
429
|
+
|
|
442
430
|
<react_native_1.View style={styles.inputGroup}>
|
|
443
431
|
<react_native_1.Text style={styles.inputLabel}>KEY NAME</react_native_1.Text>
|
|
444
432
|
<react_native_1.TextInput value={editKeyName} onChangeText={setEditKeyName} placeholder="e.g. user_session, auth_token" placeholderTextColor={AppColors_1.AppColors.grayTextWeak} editable={modalMode === 'create'} style={[
|
|
@@ -447,7 +435,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
447
435
|
]} autoCapitalize="none"/>
|
|
448
436
|
</react_native_1.View>
|
|
449
437
|
|
|
450
|
-
|
|
438
|
+
|
|
451
439
|
<react_native_1.View style={styles.inputGroup}>
|
|
452
440
|
<react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', marginBottom: 4 }}>
|
|
453
441
|
<react_native_1.Text style={styles.inputLabel}>VALUE TYPE</react_native_1.Text>
|
|
@@ -476,7 +464,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
476
464
|
</react_native_1.View>
|
|
477
465
|
</react_native_1.View>
|
|
478
466
|
|
|
479
|
-
|
|
467
|
+
|
|
480
468
|
<react_native_1.View style={styles.inputGroup}>
|
|
481
469
|
<react_native_1.Text style={styles.inputLabel}>VALUE CONTENT</react_native_1.Text>
|
|
482
470
|
<react_native_1.TextInput value={editValue} onChangeText={v => {
|
|
@@ -493,7 +481,7 @@ exports.StorageTab = react_1.default.memo(() => {
|
|
|
493
481
|
{jsonError && (<react_native_1.Text style={styles.errorText}>⚠️ {jsonError}</react_native_1.Text>)}
|
|
494
482
|
</react_native_1.View>
|
|
495
483
|
|
|
496
|
-
|
|
484
|
+
|
|
497
485
|
<react_native_1.View style={styles.modalActions}>
|
|
498
486
|
<TouchableScale_1.default onPress={() => setModalVisible(false)} style={styles.cancelBtn}>
|
|
499
487
|
<react_native_1.Text style={styles.cancelBtnText}>Cancel</react_native_1.Text>
|
|
@@ -42,7 +42,6 @@ const NetworkIcons_1 = require("../NetworkIcons");
|
|
|
42
42
|
const constants_1 = require("../../constants");
|
|
43
43
|
const helpers_1 = require("../../helpers");
|
|
44
44
|
const toast_1 = require("../../helpers/toast");
|
|
45
|
-
// ─── Crisp SVG Icons ─────────────────────────────────────────────────────────
|
|
46
45
|
const CopySvg = ({ size = 14, color = '#64748B' }) => (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
47
46
|
<react_native_svg_1.Path d="M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2z" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
48
47
|
<react_native_svg_1.Path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
@@ -126,12 +125,12 @@ const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
|
|
|
126
125
|
transform: [{ scale: scaleAnim }],
|
|
127
126
|
},
|
|
128
127
|
]}>
|
|
129
|
-
|
|
128
|
+
|
|
130
129
|
<react_native_1.TouchableOpacity style={styles.topCloseButton} onPress={handleClose} hitSlop={10} activeOpacity={0.7}>
|
|
131
130
|
<CloseSvg size={13} color="#64748B"/>
|
|
132
131
|
</react_native_1.TouchableOpacity>
|
|
133
132
|
|
|
134
|
-
|
|
133
|
+
|
|
135
134
|
<react_native_1.View style={styles.headerSection}>
|
|
136
135
|
<react_native_1.View style={styles.iconHaloRing}>
|
|
137
136
|
<BrandSquareIcon_1.BrandSquareIcon size={52}/>
|
|
@@ -146,7 +145,7 @@ const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
|
|
|
146
145
|
</react_native_1.Text>
|
|
147
146
|
</react_native_1.View>
|
|
148
147
|
|
|
149
|
-
|
|
148
|
+
|
|
150
149
|
<react_native_1.View style={styles.versionComparisonCard}>
|
|
151
150
|
<react_native_1.View style={styles.versionColumn}>
|
|
152
151
|
<react_native_1.Text style={styles.versionLabel}>INSTALLED</react_native_1.Text>
|
|
@@ -168,7 +167,7 @@ const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
|
|
|
168
167
|
</react_native_1.View>
|
|
169
168
|
</react_native_1.View>
|
|
170
169
|
|
|
171
|
-
|
|
170
|
+
|
|
172
171
|
<react_native_1.View style={styles.codeSnippetBox}>
|
|
173
172
|
<react_native_1.View style={styles.codeSnippetHeader}>
|
|
174
173
|
<react_native_1.Text style={styles.codeSnippetLabel}>UPGRADE COMMAND</react_native_1.Text>
|
|
@@ -188,7 +187,7 @@ const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
|
|
|
188
187
|
</react_native_1.TouchableOpacity>
|
|
189
188
|
</react_native_1.View>
|
|
190
189
|
|
|
191
|
-
|
|
190
|
+
|
|
192
191
|
<react_native_1.View style={styles.buttonRow}>
|
|
193
192
|
<react_native_1.TouchableOpacity style={styles.secondaryButton} onPress={handleClose} activeOpacity={0.7}>
|
|
194
193
|
<react_native_1.Text style={styles.secondaryButtonText}>Later</react_native_1.Text>
|
|
@@ -39,17 +39,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
const react_1 = __importStar(require("react"));
|
|
40
40
|
const react_native_1 = require("react-native");
|
|
41
41
|
const i18n_1 = require("../i18n");
|
|
42
|
-
// Components
|
|
43
42
|
const TreeNode_1 = __importDefault(require("./TreeNode"));
|
|
44
43
|
const SegmentedTabs_1 = __importDefault(require("./SegmentedTabs"));
|
|
45
44
|
const HighlightText_1 = __importDefault(require("./HighlightText"));
|
|
46
45
|
const CopyButton_1 = __importDefault(require("./CopyButton"));
|
|
47
46
|
const NetworkIcons_1 = require("./NetworkIcons");
|
|
48
|
-
// Styles
|
|
49
47
|
const AppColors_1 = require("../styles/AppColors");
|
|
50
48
|
const AppFonts_1 = require("../styles/AppFonts");
|
|
51
49
|
const styles_1 = __importDefault(require("../styles"));
|
|
52
|
-
// ── Table Row Component with 3-Line Clamp & Show More/Less ───────────────────
|
|
53
50
|
const JsonTableRow = react_1.default.memo(({ itemKey, val, search, }) => {
|
|
54
51
|
const [expanded, setExpanded] = (0, react_1.useState)(false);
|
|
55
52
|
const isObject = val !== null && typeof val === 'object';
|
|
@@ -93,7 +90,6 @@ const JsonTableRow = react_1.default.memo(({ itemKey, val, search, }) => {
|
|
|
93
90
|
</react_native_1.View>
|
|
94
91
|
</react_native_1.View>);
|
|
95
92
|
});
|
|
96
|
-
// ── JsonViewer Component ─────────────────────────────────────────────────────
|
|
97
93
|
const JsonViewer = react_1.default.memo(({ data, search, forceOpen, defaultExpandDepth = 1, wrap, fullHeight = false, maxHeight, mode: externalMode, onModeChange, hideTabs = false, }) => {
|
|
98
94
|
const { t } = (0, i18n_1.useTranslation)();
|
|
99
95
|
const [internalMode, setInternalMode] = (0, react_1.useState)('raw');
|
|
@@ -141,12 +137,10 @@ const JsonViewer = react_1.default.memo(({ data, search, forceOpen, defaultExpan
|
|
|
141
137
|
localStyles.rawScroll,
|
|
142
138
|
!fullHeight && maxHeight != null && { maxHeight },
|
|
143
139
|
];
|
|
144
|
-
// Determine type and size details
|
|
145
140
|
const isObject = typeof data === 'object' && data !== null;
|
|
146
141
|
const isEmpty = data === null ||
|
|
147
142
|
data === undefined ||
|
|
148
143
|
(isObject && Object.keys(data).length === 0);
|
|
149
|
-
// Render Table view (Key-Value flat table for root keys)
|
|
150
144
|
const renderTableMode = () => {
|
|
151
145
|
if (!isObject) {
|
|
152
146
|
return (<react_native_1.View style={localStyles.tableRow}>
|
|
@@ -168,10 +162,9 @@ const JsonViewer = react_1.default.memo(({ data, search, forceOpen, defaultExpan
|
|
|
168
162
|
{keys.map((key) => (<JsonTableRow key={key} itemKey={key} val={data[key]} search={search}/>))}
|
|
169
163
|
</react_native_1.View>);
|
|
170
164
|
};
|
|
171
|
-
// Tree View Content
|
|
172
165
|
const tree = (<TreeNode_1.default data={data} search={search} forceOpen={forceOpen} defaultExpandDepth={defaultExpandDepth}/>);
|
|
173
166
|
return (<react_native_1.View style={[localStyles.container, fullHeight && { flex: 1 }]}>
|
|
174
|
-
|
|
167
|
+
|
|
175
168
|
{!hideTabs && (<react_native_1.View style={localStyles.toolbar}>
|
|
176
169
|
<SegmentedTabs_1.default tabs={[
|
|
177
170
|
{
|
|
@@ -193,7 +186,7 @@ const JsonViewer = react_1.default.memo(({ data, search, forceOpen, defaultExpan
|
|
|
193
186
|
<CopyButton_1.default value={data} label="JSON"/>
|
|
194
187
|
</react_native_1.View>)}
|
|
195
188
|
|
|
196
|
-
|
|
189
|
+
|
|
197
190
|
<react_native_1.View style={contentWrapperStyle}>
|
|
198
191
|
{mode === 'pretty' && (isEmpty ? (<react_native_1.View style={localStyles.emptyTable}>
|
|
199
192
|
<react_native_1.Text style={localStyles.emptyTableText}>
|
|
@@ -276,7 +269,7 @@ const localStyles = react_native_1.StyleSheet.create({
|
|
|
276
269
|
},
|
|
277
270
|
rawScroll: {
|
|
278
271
|
flex: 1,
|
|
279
|
-
backgroundColor: AppColors_1.AppColors.paperBg,
|
|
272
|
+
backgroundColor: AppColors_1.AppColors.paperBg,
|
|
280
273
|
},
|
|
281
274
|
rawContainer: {
|
|
282
275
|
padding: 12,
|
|
@@ -123,7 +123,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
|
|
|
123
123
|
},
|
|
124
124
|
]}>
|
|
125
125
|
<react_native_1.View style={styles_1.default.cardBody}>
|
|
126
|
-
|
|
126
|
+
|
|
127
127
|
<react_native_1.View style={styles_1.default.cardHeaderRow}>
|
|
128
128
|
<react_native_1.View style={styles_1.default.cardHeaderLeft}>
|
|
129
129
|
<react_native_1.Pressable onPress={() => onToggleSelect(item.id)} hitSlop={12} style={[
|
|
@@ -183,7 +183,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
|
|
|
183
183
|
</react_native_1.Text>
|
|
184
184
|
</react_native_1.View>)}
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
|
|
187
187
|
<react_native_1.View style={[
|
|
188
188
|
styles_1.default.chip,
|
|
189
189
|
{
|
|
@@ -212,7 +212,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
|
|
|
212
212
|
</react_native_1.Text>
|
|
213
213
|
</react_native_1.View>
|
|
214
214
|
|
|
215
|
-
|
|
215
|
+
|
|
216
216
|
{(item.url.toLowerCase().includes('graphql') ||
|
|
217
217
|
item.client === 'apollo' ||
|
|
218
218
|
item.client === 'graphql') && (<react_native_1.View style={[
|
|
@@ -237,7 +237,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
|
|
|
237
237
|
</react_native_1.Text>
|
|
238
238
|
</react_native_1.View>)}
|
|
239
239
|
|
|
240
|
-
|
|
240
|
+
|
|
241
241
|
{item.duration != null && !isFailed && (<react_native_1.View style={[
|
|
242
242
|
styles_1.default.chip,
|
|
243
243
|
{
|
|
@@ -299,7 +299,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
|
|
|
299
299
|
</react_native_1.View>
|
|
300
300
|
</react_native_1.View>
|
|
301
301
|
|
|
302
|
-
|
|
302
|
+
|
|
303
303
|
<react_native_1.View style={styles_1.default.cardSlugBox}>
|
|
304
304
|
<react_native_1.Pressable onPress={handleOpenUrl} style={styles_1.default.slugLeft} hitSlop={6}>
|
|
305
305
|
<react_native_1.View style={{
|
|
@@ -346,7 +346,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
|
|
|
346
346
|
</react_native_1.View>
|
|
347
347
|
</react_native_1.View>
|
|
348
348
|
|
|
349
|
-
|
|
349
|
+
|
|
350
350
|
<react_native_1.View style={styles_1.default.cardFooterRow}>
|
|
351
351
|
<react_native_1.View style={styles_1.default.cardDateRow}>
|
|
352
352
|
<NetworkIcons_1.CalendarIcon color={AppColors_1.AppColors.grayTextWeak} size={10}/>
|
|
@@ -385,7 +385,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
|
|
|
385
385
|
</react_native_1.View>
|
|
386
386
|
</react_native_1.View>
|
|
387
387
|
|
|
388
|
-
|
|
388
|
+
|
|
389
389
|
{typeof item.duration === 'number' && item.duration > 0 && !isFailed && (<react_native_1.View style={{ marginTop: 6, gap: 2 }}>
|
|
390
390
|
<react_native_1.View style={{
|
|
391
391
|
height: 2.5,
|
|
@@ -39,18 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
const react_1 = __importStar(require("react"));
|
|
40
40
|
const i18n_1 = require("../i18n");
|
|
41
41
|
const react_native_1 = require("react-native");
|
|
42
|
-
// Constants
|
|
43
42
|
const constants_1 = require("../constants");
|
|
44
|
-
// Custom Hooks
|
|
45
43
|
const useAccordion_1 = __importDefault(require("../customHooks/useAccordion"));
|
|
46
|
-
// Helpers
|
|
47
44
|
const helpers_1 = require("../helpers");
|
|
48
|
-
// Assets
|
|
49
45
|
const NetworkIcons_1 = require("./NetworkIcons");
|
|
50
|
-
// Components
|
|
51
46
|
const TouchableScale_1 = __importDefault(require("./TouchableScale"));
|
|
52
47
|
const CopyButton_1 = __importDefault(require("./CopyButton"));
|
|
53
|
-
// Stylesheet
|
|
54
48
|
const AppColors_1 = require("../styles/AppColors");
|
|
55
49
|
const AppFonts_1 = require("../styles/AppFonts");
|
|
56
50
|
const styles_1 = __importDefault(require("../styles"));
|
|
@@ -221,7 +215,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
221
215
|
</react_native_1.View>
|
|
222
216
|
</react_native_1.View>
|
|
223
217
|
|
|
224
|
-
|
|
218
|
+
|
|
225
219
|
{duration != null && !isFailed && (<react_native_1.View style={{ paddingVertical: 8, gap: 6 }}>
|
|
226
220
|
<react_native_1.View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
|
|
227
221
|
<react_native_1.Text style={{ fontFamily: AppFonts_1.AppFonts.interBold, fontSize: 11, color: AppColors_1.AppColors.primaryBlack }}>
|
|
@@ -41,7 +41,6 @@ exports.DiagnosticsIcon = exports.StackTraceIcon = exports.LayoutIcon = exports.
|
|
|
41
41
|
exports.PlusIcon = exports.PencilIcon = exports.DatabaseIcon = exports.ShieldCheckIcon = exports.WifiIcon = exports.CpuIcon = exports.ChevronDownIcon = exports.ResetIcon = exports.NpmIcon = exports.TagIcon = exports.BugIcon = exports.AlertTriangleIcon = exports.SmartphoneIcon = exports.KeyIcon = exports.BarChartIcon = exports.DiceIcon = exports.ZapIcon = exports.FlaskIcon = exports.LoadingSpinnerIcon = exports.ListenerIcon = exports.AllFramesIcon = exports.AppFramesIcon = exports.RawJsonIcon = exports.TrailIcon = void 0;
|
|
42
42
|
const react_1 = __importDefault(require("react"));
|
|
43
43
|
const react_native_svg_1 = __importStar(require("react-native-svg"));
|
|
44
|
-
// Stylesheet
|
|
45
44
|
const AppColors_1 = require("../styles/AppColors");
|
|
46
45
|
const EmptyRadarIcon = ({ color = AppColors_1.AppColors.purple, size = 32 }) => {
|
|
47
46
|
return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
@@ -281,19 +280,19 @@ const InsightsIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14, }
|
|
|
281
280
|
exports.InsightsIcon = InsightsIcon;
|
|
282
281
|
const DebugIcon = ({ color = AppColors_1.AppColors.white, size = 18 }) => {
|
|
283
282
|
return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
284
|
-
|
|
285
|
-
|
|
283
|
+
|
|
284
|
+
|
|
286
285
|
<react_native_svg_1.Path d="M6 18l8-8" stroke={color} strokeWidth="2.5" strokeLinecap="round"/>
|
|
287
|
-
|
|
286
|
+
|
|
288
287
|
<react_native_svg_1.Path d="M13.5 10.5l2-2 1.5 1.5-2 2-1.5-1.5z" fill={color}/>
|
|
289
288
|
<react_native_svg_1.Path d="M15.5 8.5L19 5c.5-.5 1.2-.5 1.7 0s.5 1.2 0 1.7L17.2 10.2" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
290
289
|
|
|
291
|
-
|
|
292
|
-
|
|
290
|
+
|
|
291
|
+
|
|
293
292
|
<react_native_svg_1.Path d="M15 15l4 4" stroke={color} strokeWidth="3.5" strokeLinecap="round"/>
|
|
294
|
-
|
|
293
|
+
|
|
295
294
|
<react_native_svg_1.Path d="M15 15L8.5 8.5" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
296
|
-
|
|
295
|
+
|
|
297
296
|
<react_native_svg_1.Path d="M9 9L5 5M4.5 6.5l2-2" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
298
297
|
</react_native_svg_1.default>);
|
|
299
298
|
};
|
|
@@ -354,21 +353,19 @@ const FolderIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14, })
|
|
|
354
353
|
</react_native_svg_1.default>);
|
|
355
354
|
};
|
|
356
355
|
exports.FolderIcon = FolderIcon;
|
|
357
|
-
// #3 — Broom/sweep "wipe" icon used by the header Clear-Everything button.
|
|
358
356
|
const WipeIcon = ({ color = AppColors_1.AppColors.white, size = 16 }) => {
|
|
359
357
|
return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
360
|
-
|
|
358
|
+
|
|
361
359
|
<react_native_svg_1.Path d="M19.5 3.5L12.7 10.3" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
362
|
-
|
|
360
|
+
|
|
363
361
|
<react_native_svg_1.Path d="M13.5 9.5l1.5 1.5c.8.8.8 2 0 2.8L10 19l-5-5 5.2-5.5c.8-.8 2-.8 2.8 0z" stroke={color} strokeWidth="2" strokeLinejoin="round"/>
|
|
364
|
-
|
|
362
|
+
|
|
365
363
|
<react_native_svg_1.Path d="M7.5 16.5L5.5 18.5M10 19l-1.5 1.5" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
366
|
-
|
|
364
|
+
|
|
367
365
|
<react_native_svg_1.Path d="M3 11.5h.01M5.5 8.5h.01" stroke={color} strokeWidth="2.4" strokeLinecap="round"/>
|
|
368
366
|
</react_native_svg_1.default>);
|
|
369
367
|
};
|
|
370
368
|
exports.WipeIcon = WipeIcon;
|
|
371
|
-
// #7 — Icons for the inner filter chips / sub tabs.
|
|
372
369
|
const LayersIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 12, }) => {
|
|
373
370
|
return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
374
371
|
<react_native_svg_1.Path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
@@ -524,7 +521,6 @@ const PerformanceIcon = ({ color = AppColors_1.AppColors.purple, size = 14, }) =
|
|
|
524
521
|
</react_native_svg_1.default>);
|
|
525
522
|
};
|
|
526
523
|
exports.PerformanceIcon = PerformanceIcon;
|
|
527
|
-
// ─── App-wide Vector Icons (emoji-free, render on every device) ─────────────
|
|
528
524
|
const BoltIcon = ({ color = AppColors_1.AppColors.amber500, size = 14 }) => {
|
|
529
525
|
return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
530
526
|
<react_native_svg_1.Path d="M13 2 4.5 13.5 H10.5 L9 22 19.5 9.5 H13.5 Z" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
|
|
@@ -703,7 +699,7 @@ const UserCheckIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14,
|
|
|
703
699
|
exports.UserCheckIcon = UserCheckIcon;
|
|
704
700
|
const CrashIcon = ({ color = AppColors_1.AppColors.errorColor, size = 14, }) => {
|
|
705
701
|
return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
706
|
-
|
|
702
|
+
|
|
707
703
|
<react_native_svg_1.Path d="M12 2v3M4.93 4.93l2.12 2.12M19.07 4.93l-2.12 2.12M9 10h6M8 14h8M9 18h6" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
|
|
708
704
|
<react_native_svg_1.Path d="M12 8a6 6 0 0 1 6 6v3a6 6 0 0 1-12 0v-3a6 6 0 0 1 6-6z" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
|
|
709
705
|
<react_native_svg_1.Path d="M3 13h3M18 13h3M4 19l2.5-1.5M20 19l-2.5-1.5M4 9l2.5 1.5M20 9l-2.5 1.5" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
|
|
@@ -38,14 +38,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
const react_1 = __importStar(require("react"));
|
|
40
40
|
const react_native_1 = require("react-native");
|
|
41
|
-
// Stylesheet
|
|
42
41
|
const AppColors_1 = require("../styles/AppColors");
|
|
43
|
-
// Components
|
|
44
42
|
const CopyButton_1 = __importDefault(require("./CopyButton"));
|
|
45
43
|
const TouchableScale_1 = __importDefault(require("./TouchableScale"));
|
|
46
|
-
// Assets
|
|
47
44
|
const NetworkIcons_1 = require("./NetworkIcons");
|
|
48
|
-
// Stylesheet
|
|
49
45
|
const styles_1 = __importDefault(require("../styles"));
|
|
50
46
|
const SectionHeader = ({ title, value, expanded, onToggleExpand, showDiff, isDiffing, onToggleDiff, showSearch, isSearching, onToggleSearch, }) => {
|
|
51
47
|
const isOpen = expanded === undefined ? false : !!expanded;
|
|
@@ -56,7 +56,7 @@ exports.SkeletonPlaceholder = react_1.default.memo(function SkeletonPlaceholder(
|
|
|
56
56
|
return () => animation.stop();
|
|
57
57
|
}, [shimmerAnim]);
|
|
58
58
|
return (<react_native_1.View style={skeletonStyles.container}>
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
<react_native_1.View style={skeletonStyles.toolbarSkeleton}>
|
|
61
61
|
<react_native_1.Animated.View style={[
|
|
62
62
|
skeletonStyles.searchBarSkeleton,
|
|
@@ -68,7 +68,7 @@ exports.SkeletonPlaceholder = react_1.default.memo(function SkeletonPlaceholder(
|
|
|
68
68
|
</react_native_1.View>
|
|
69
69
|
</react_native_1.View>
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
|
|
72
72
|
<react_native_1.View style={skeletonStyles.chipStripSkeleton}>
|
|
73
73
|
<react_native_1.Animated.View style={[skeletonStyles.chipSkeleton, { width: 48, opacity: shimmerAnim }]}/>
|
|
74
74
|
<react_native_1.Animated.View style={[skeletonStyles.chipSkeleton, { width: 68, opacity: shimmerAnim }]}/>
|
|
@@ -76,9 +76,9 @@ exports.SkeletonPlaceholder = react_1.default.memo(function SkeletonPlaceholder(
|
|
|
76
76
|
<react_native_1.Animated.View style={[skeletonStyles.chipSkeleton, { width: 58, opacity: shimmerAnim }]}/>
|
|
77
77
|
</react_native_1.View>
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
{Array.from({ length: cardCount }).map((_, i) => (<react_native_1.Animated.View key={`skeleton_card_${i}`} style={[skeletonStyles.cardSkeleton, { opacity: shimmerAnim }]}>
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
<react_native_1.View style={skeletonStyles.cardTopRow}>
|
|
83
83
|
<react_native_1.View style={skeletonStyles.badgeGroup}>
|
|
84
84
|
<react_native_1.View style={skeletonStyles.statusBadgeSkeleton}/>
|
|
@@ -87,11 +87,11 @@ exports.SkeletonPlaceholder = react_1.default.memo(function SkeletonPlaceholder(
|
|
|
87
87
|
<react_native_1.View style={skeletonStyles.timeSkeleton}/>
|
|
88
88
|
</react_native_1.View>
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
|
|
91
91
|
<react_native_1.View style={skeletonStyles.urlLineLong}/>
|
|
92
92
|
<react_native_1.View style={skeletonStyles.urlLineShort}/>
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
|
|
95
95
|
<react_native_1.View style={skeletonStyles.cardBottomRow}>
|
|
96
96
|
<react_native_1.View style={skeletonStyles.metaPillSkeleton}/>
|
|
97
97
|
<react_native_1.View style={skeletonStyles.metaPillSkeleton}/>
|
|
@@ -95,7 +95,7 @@ exports.Slider = react_1.default.memo(({ value, onValueChange, min = 50, max = 9
|
|
|
95
95
|
};
|
|
96
96
|
const thumbPosition = percentage * (trackWidth || 0);
|
|
97
97
|
return (<react_native_1.View style={styles.container}>
|
|
98
|
-
|
|
98
|
+
|
|
99
99
|
<react_native_1.View style={styles.valueRow}>
|
|
100
100
|
<react_native_1.Text style={styles.rangeText}>{min}%</react_native_1.Text>
|
|
101
101
|
<react_native_1.View style={[
|
|
@@ -107,18 +107,18 @@ exports.Slider = react_1.default.memo(({ value, onValueChange, min = 50, max = 9
|
|
|
107
107
|
<react_native_1.Text style={styles.rangeText}>{max}%</react_native_1.Text>
|
|
108
108
|
</react_native_1.View>
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
<react_native_1.View ref={trackContainerRef} onLayout={handleLayout} {...panResponder.panHandlers} style={styles.touchArea}>
|
|
112
|
-
|
|
112
|
+
|
|
113
113
|
<react_native_1.View style={styles.rail}>
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
<react_native_1.View style={[
|
|
116
116
|
styles.fillBar,
|
|
117
117
|
{ width: `${Math.round(percentage * 100)}%` },
|
|
118
118
|
]}/>
|
|
119
119
|
</react_native_1.View>
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
<react_native_1.View style={[
|
|
123
123
|
styles.thumb,
|
|
124
124
|
{
|
|
@@ -130,7 +130,7 @@ exports.Slider = react_1.default.memo(({ value, onValueChange, min = 50, max = 9
|
|
|
130
130
|
</react_native_1.View>
|
|
131
131
|
</react_native_1.View>
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
{quickPresets && quickPresets.length > 0 && (<react_native_1.View style={styles.presetRow}>
|
|
135
135
|
{quickPresets.map(preset => {
|
|
136
136
|
const isSelected = Math.round(clampedValue) === preset;
|
|
@@ -39,13 +39,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
const react_1 = __importDefault(require("react"));
|
|
40
40
|
const react_native_1 = require("react-native");
|
|
41
41
|
const react_native_svg_1 = __importStar(require("react-native-svg"));
|
|
42
|
-
// Components
|
|
43
42
|
const CopyButton_1 = __importDefault(require("./CopyButton"));
|
|
44
|
-
// Custom Hooks
|
|
45
43
|
const useAccordion_1 = __importDefault(require("../customHooks/useAccordion"));
|
|
46
|
-
// Assets
|
|
47
44
|
const NetworkIcons_1 = require("./NetworkIcons");
|
|
48
|
-
// Stylesheet
|
|
49
45
|
const AppColors_1 = require("../styles/AppColors");
|
|
50
46
|
const styles_1 = __importDefault(require("../styles"));
|
|
51
47
|
const SourcePageCard = ({ routeInfo }) => {
|
|
@@ -38,11 +38,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
const react_1 = __importStar(require("react"));
|
|
40
40
|
const react_native_1 = require("react-native");
|
|
41
|
-
// Helpers
|
|
42
41
|
const helpers_1 = require("../helpers");
|
|
43
|
-
// Assets
|
|
44
42
|
const NetworkIcons_1 = require("./NetworkIcons");
|
|
45
|
-
// Stylesheet
|
|
46
43
|
const AppColors_1 = require("../styles/AppColors");
|
|
47
44
|
const styles_1 = __importDefault(require("../styles"));
|
|
48
45
|
const TreeNode = react_1.default.memo(function TreeNode({ data, name, level = 0, search, forceOpen, defaultExpandDepth = 1, }) {
|
|
@@ -60,7 +57,6 @@ const TreeNode = react_1.default.memo(function TreeNode({ data, name, level = 0,
|
|
|
60
57
|
}, [forceOpen]);
|
|
61
58
|
const isObject = typeof data === 'object' && data !== null;
|
|
62
59
|
const isArray = Array.isArray(data);
|
|
63
|
-
// Declare all hooks at the top unconditionally (prevents "Rendered fewer hooks than expected" error)
|
|
64
60
|
const treeChevronAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(open ? 1 : 0)).current;
|
|
65
61
|
(0, react_1.useEffect)(() => {
|
|
66
62
|
react_native_1.Animated.timing(treeChevronAnim, {
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sub-module entry point: react-native-inapp-inspector/console
|
|
3
|
-
* Clean tree-shaking & isolated console logger.
|
|
4
|
-
*/
|
|
5
1
|
export { setupConsoleLogger, clearConsoleLogs, subscribeConsoleLogs, getConsoleLogs, setConsoleModuleEnabled, getConsoleModuleEnabled, setMaxConsoleLogsLimit, getMaxConsoleLogsLimit, pruneConsoleLogs, } from './customHooks/consoleLogger';
|
|
6
2
|
export type { ConsoleLog, } from './types';
|
|
7
3
|
export { ConsoleLogType, LogFilter, } from './types';
|