react-native-inapp-inspector 2.3.5 → 2.3.7
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 +3 -0
- package/dist/commonjs/constants/telemetryConfig.js +6 -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 +136 -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 +3 -0
- package/dist/esm/constants/telemetryConfig.js +3 -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 +132 -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 +6 -0
- package/src/constants/version.ts +1 -1
- package/src/helpers/telemetry.ts +161 -0
- package/src/index.tsx +15 -1
- package/src/types/interfaces.ts +3 -0
|
@@ -98,9 +98,7 @@ const getOriginBadge = (originType) => {
|
|
|
98
98
|
const ReduxTab = react_1.default.memo(() => {
|
|
99
99
|
const { t } = (0, i18n_1.useTranslation)();
|
|
100
100
|
const { reduxState, reduxLastActionMap, reduxSearch, setReduxSearch, setSelectedReduxSlice, } = (0, InspectorContext_1.useInspector)();
|
|
101
|
-
// Sort mode: 'latest' (newest updated first) vs 'alpha' (A-Z)
|
|
102
101
|
const [sortMode, setSortMode] = (0, react_1.useState)('latest');
|
|
103
|
-
// Pause / Live Auto-Refresh State
|
|
104
102
|
const [isReduxPaused, setIsReduxPaused] = (0, react_1.useState)(!(0, reduxLogger_1.getReduxAutoRefresh)());
|
|
105
103
|
const handleTogglePause = (0, react_1.useCallback)(() => {
|
|
106
104
|
setIsReduxPaused(prev => {
|
|
@@ -109,15 +107,12 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
109
107
|
return next;
|
|
110
108
|
});
|
|
111
109
|
}, []);
|
|
112
|
-
// Total state size calculation
|
|
113
110
|
const totalStateSize = (0, react_1.useMemo)(() => {
|
|
114
111
|
return (0, helpers_1.getSize)(reduxState);
|
|
115
112
|
}, [reduxState]);
|
|
116
|
-
// Fetch full action history for timeline counts
|
|
117
113
|
const allActions = (0, react_1.useMemo)(() => {
|
|
118
114
|
return (0, reduxLogger_1.getActionHistory)();
|
|
119
115
|
}, [reduxLastActionMap]);
|
|
120
|
-
// Compute slice items with exact timestamps & rich details
|
|
121
116
|
const sliceItems = (0, react_1.useMemo)(() => {
|
|
122
117
|
if (!reduxState || typeof reduxState !== 'object')
|
|
123
118
|
return [];
|
|
@@ -140,7 +135,6 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
140
135
|
keysCount = 1;
|
|
141
136
|
typeLabel = typeof sliceVal;
|
|
142
137
|
}
|
|
143
|
-
// Determine state status
|
|
144
138
|
let status = 'live';
|
|
145
139
|
let statusMessage;
|
|
146
140
|
if (isObject) {
|
|
@@ -165,7 +159,6 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
165
159
|
}
|
|
166
160
|
const lastActionRaw = reduxLastActionMap[key];
|
|
167
161
|
const updatedAt = lastActionRaw?.updatedAt || 0;
|
|
168
|
-
// Count actions affecting this slice in timeline
|
|
169
162
|
const timelineCount = allActions.filter(action => {
|
|
170
163
|
if (!action.affectedSlices || action.affectedSlices.length === 0)
|
|
171
164
|
return true;
|
|
@@ -211,7 +204,6 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
211
204
|
};
|
|
212
205
|
});
|
|
213
206
|
}, [reduxState, reduxLastActionMap, allActions]);
|
|
214
|
-
// Filter & Sort slices: by default, the most recently updated item is at the FIRST position
|
|
215
207
|
const filteredSlices = (0, react_1.useMemo)(() => {
|
|
216
208
|
let list = sliceItems;
|
|
217
209
|
if (reduxSearch && reduxSearch.trim().length > 0) {
|
|
@@ -232,7 +224,6 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
232
224
|
}
|
|
233
225
|
return [...list].sort((a, b) => {
|
|
234
226
|
if (sortMode === 'latest') {
|
|
235
|
-
// Most recently updated item first
|
|
236
227
|
if (b.updatedAt !== a.updatedAt) {
|
|
237
228
|
return b.updatedAt - a.updatedAt;
|
|
238
229
|
}
|
|
@@ -258,7 +249,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
258
249
|
reduxTabStyles.card,
|
|
259
250
|
isRecentlyUpdated && reduxTabStyles.cardRecentlyUpdated,
|
|
260
251
|
]}>
|
|
261
|
-
|
|
252
|
+
|
|
262
253
|
<react_native_1.View style={reduxTabStyles.cardHeader}>
|
|
263
254
|
<react_native_1.View style={reduxTabStyles.sliceBadge}>
|
|
264
255
|
<react_native_1.Text style={reduxTabStyles.sliceBadgeText}>SLICE</react_native_1.Text>
|
|
@@ -266,7 +257,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
266
257
|
|
|
267
258
|
<HighlightText_1.default text={item.name} search={reduxSearch} style={reduxTabStyles.sliceName} highlightStyle={reduxTabStyles.highlight}/>
|
|
268
259
|
|
|
269
|
-
|
|
260
|
+
|
|
270
261
|
{item.status === 'loading' ? (<react_native_1.View style={reduxTabStyles.loadingPill}>
|
|
271
262
|
<NetworkIcons_1.LoadingSpinnerIcon color={AppColors_1.AppColors.amber800Warm} size={10}/>
|
|
272
263
|
<react_native_1.Text style={reduxTabStyles.loadingPillText}>Loading</react_native_1.Text>
|
|
@@ -290,7 +281,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
290
281
|
<NetworkIcons_1.ForwardChevronIcon color={AppColors_1.AppColors.grayTextWeak} size={13}/>
|
|
291
282
|
</react_native_1.View>
|
|
292
283
|
|
|
293
|
-
|
|
284
|
+
|
|
294
285
|
<react_native_1.View style={reduxTabStyles.statsRow}>
|
|
295
286
|
<react_native_1.View style={reduxTabStyles.pill}>
|
|
296
287
|
<NetworkIcons_1.LayersIcon color={AppColors_1.AppColors.grayTextWeak} size={11}/>
|
|
@@ -306,13 +297,13 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
306
297
|
</react_native_1.View>)}
|
|
307
298
|
</react_native_1.View>
|
|
308
299
|
|
|
309
|
-
|
|
300
|
+
|
|
310
301
|
{item.lastAction && (<react_native_1.View style={reduxTabStyles.lastActionRow}>
|
|
311
302
|
<react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 5, flex: 1, minWidth: 0, flexWrap: 'wrap' }}>
|
|
312
303
|
<NetworkIcons_1.BoltIcon color={AppColors_1.AppColors.brandPurple} size={12}/>
|
|
313
304
|
<react_native_1.Text style={reduxTabStyles.lastActionLabel}>{t('redux.last', 'Last')}:</react_native_1.Text>
|
|
314
305
|
|
|
315
|
-
|
|
306
|
+
|
|
316
307
|
{item.lastAction.originType && (() => {
|
|
317
308
|
const origin = getOriginBadge(item.lastAction.originType);
|
|
318
309
|
return (<react_native_1.View style={{
|
|
@@ -340,7 +331,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
340
331
|
|
|
341
332
|
<HighlightText_1.default text={item.lastAction.type} search={reduxSearch} style={reduxTabStyles.lastActionValue} highlightStyle={reduxTabStyles.highlight} numberOfLines={1}/>
|
|
342
333
|
|
|
343
|
-
|
|
334
|
+
|
|
344
335
|
{item.lastAction.callerFile && (<react_native_1.Pressable onPress={() => (0, helpers_1.openInVSCode)(item.lastAction.callerFile, item.lastAction.callerLine, item.lastAction.callerCol)} hitSlop={6} style={{
|
|
345
336
|
flexDirection: 'row',
|
|
346
337
|
alignItems: 'center',
|
|
@@ -382,7 +373,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
382
373
|
</react_native_1.View>);
|
|
383
374
|
}
|
|
384
375
|
return (<react_native_1.View style={{ flex: 1, backgroundColor: AppColors_1.AppColors.grayBackground }}>
|
|
385
|
-
|
|
376
|
+
|
|
386
377
|
<react_native_1.View style={reduxTabStyles.overviewCard}>
|
|
387
378
|
<react_native_1.View style={reduxTabStyles.statCol}>
|
|
388
379
|
<react_native_1.Text style={reduxTabStyles.statHeading}>ACTIVE SLICES</react_native_1.Text>
|
|
@@ -428,7 +419,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
428
419
|
</react_native_1.View>
|
|
429
420
|
</react_native_1.View>
|
|
430
421
|
|
|
431
|
-
|
|
422
|
+
|
|
432
423
|
<react_native_1.View style={reduxTabStyles.toolbarContainer}>
|
|
433
424
|
<react_native_1.View style={reduxTabStyles.searchRow}>
|
|
434
425
|
<react_native_1.View style={styles_1.default.searchContainer}>
|
|
@@ -455,7 +446,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
455
446
|
</react_native_1.View>)}
|
|
456
447
|
</react_native_1.View>
|
|
457
448
|
|
|
458
|
-
|
|
449
|
+
|
|
459
450
|
<react_native_1.TouchableOpacity accessible={true} accessibilityRole="button" accessibilityLabel={isReduxPaused
|
|
460
451
|
? 'Resume live Redux updates'
|
|
461
452
|
: 'Pause live Redux updates'} accessibilityHint="Toggles automatic recording of Redux state updates" style={[
|
|
@@ -470,7 +461,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
470
461
|
: AppColors_1.AppColors.grayTextStrong} size={16}/>
|
|
471
462
|
</react_native_1.TouchableOpacity>
|
|
472
463
|
|
|
473
|
-
|
|
464
|
+
|
|
474
465
|
<react_native_1.TouchableOpacity accessible={true} accessibilityRole="button" accessibilityLabel={`Sort order: ${sortMode === 'latest'
|
|
475
466
|
? 'Recently updated first'
|
|
476
467
|
: 'Alphabetical A to Z'}`} accessibilityHint="Switches sorting between recently updated and alphabetical" style={[
|
|
@@ -499,7 +490,7 @@ const ReduxTab = react_1.default.memo(() => {
|
|
|
499
490
|
</react_native_1.View>
|
|
500
491
|
</react_native_1.View>
|
|
501
492
|
|
|
502
|
-
|
|
493
|
+
|
|
503
494
|
<react_native_1.FlatList data={filteredSlices} keyExtractor={item => item.id} renderItem={renderSliceItem} initialNumToRender={12} maxToRenderPerBatch={8} windowSize={5} removeClippedSubviews={true} renderToHardwareTextureAndroid={true} ListEmptyComponent={<EmptyState_1.default isSearch={reduxSearch.length > 0}/>} ListFooterComponent={filteredSlices.length > 0 ? (<EndOfListFooter_1.default count={filteredSlices.length} label="slices"/>) : null} contentContainerStyle={[
|
|
504
495
|
reduxTabStyles.listContent,
|
|
505
496
|
filteredSlices.length === 0 && { flexGrow: 1 },
|
|
@@ -69,7 +69,6 @@ const SettingsPanel = () => {
|
|
|
69
69
|
}, [modalHeightPercent]);
|
|
70
70
|
const autoRamProfile = (0, settingsStore_1.calculateRamBasedLimits)(deviceFreeRamMb);
|
|
71
71
|
const isPersistent = (0, settingsStore_1.isPersistentStorageAvailable)();
|
|
72
|
-
// Safe Area & Status Bar Padding for All Device Form Factors
|
|
73
72
|
const statusBarHeight = react_native_1.Platform.OS === 'android' ? react_native_1.StatusBar.currentHeight || 24 : 44;
|
|
74
73
|
const headerTopPadding = modalHeightPercent >= 95 ? statusBarHeight : 0;
|
|
75
74
|
const allModules = [
|
|
@@ -137,7 +136,6 @@ const SettingsPanel = () => {
|
|
|
137
136
|
desc: 'AsyncStorage & MMKV key-value store viewer with full CRUD support',
|
|
138
137
|
},
|
|
139
138
|
];
|
|
140
|
-
// Staged selection state for checkboxes before clicking "Save Changes"
|
|
141
139
|
const [stagedTabVisibility, setStagedTabVisibility] = (0, react_1.useState)(() => ({
|
|
142
140
|
apis: true,
|
|
143
141
|
logs: Boolean(tabVisibility?.logs),
|
|
@@ -149,7 +147,6 @@ const SettingsPanel = () => {
|
|
|
149
147
|
device: Boolean(tabVisibility?.device),
|
|
150
148
|
storage: Boolean(tabVisibility?.storage),
|
|
151
149
|
}));
|
|
152
|
-
// Synchronize staged state with tabVisibility when tabVisibility updates
|
|
153
150
|
(0, react_1.useEffect)(() => {
|
|
154
151
|
setStagedTabVisibility({
|
|
155
152
|
apis: true,
|
|
@@ -186,7 +183,6 @@ const SettingsPanel = () => {
|
|
|
186
183
|
(0, InspectorContext_1.animateNextLayout)();
|
|
187
184
|
setSettingsPage('main');
|
|
188
185
|
};
|
|
189
|
-
// Helper: settings row with icon + label + optional description
|
|
190
186
|
const renderSettingRow = (opts) => {
|
|
191
187
|
return (<react_native_1.View style={{
|
|
192
188
|
paddingVertical: 12,
|
|
@@ -316,7 +312,7 @@ const SettingsPanel = () => {
|
|
|
316
312
|
backgroundColor: AppColors_1.AppColors.grayBackground,
|
|
317
313
|
}}>
|
|
318
314
|
<react_native_1.ScrollView style={{ flex: 1 }} contentContainerStyle={{ padding: 16, paddingBottom: 100, gap: 14 }} showsVerticalScrollIndicator={false}>
|
|
319
|
-
|
|
315
|
+
|
|
320
316
|
<react_native_1.View style={{
|
|
321
317
|
flexDirection: 'row',
|
|
322
318
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
@@ -421,7 +417,7 @@ const SettingsPanel = () => {
|
|
|
421
417
|
</react_native_1.View>
|
|
422
418
|
|
|
423
419
|
{settingsActiveSubTab === 'module' && (<react_native_1.View style={{ gap: 12 }}>
|
|
424
|
-
|
|
420
|
+
|
|
425
421
|
<react_native_1.View style={{ gap: 10 }}>
|
|
426
422
|
{allModules.map(moduleItem => {
|
|
427
423
|
const isReduxAvail = (0, reduxLogger_1.isReduxConnected)();
|
|
@@ -461,13 +457,13 @@ const SettingsPanel = () => {
|
|
|
461
457
|
shadowRadius: 5,
|
|
462
458
|
shadowOffset: { width: 0, height: 2 },
|
|
463
459
|
}}>
|
|
464
|
-
|
|
460
|
+
|
|
465
461
|
<react_native_1.View style={{
|
|
466
462
|
flexDirection: 'row',
|
|
467
463
|
alignItems: 'flex-start',
|
|
468
464
|
gap: 10,
|
|
469
465
|
}}>
|
|
470
|
-
|
|
466
|
+
|
|
471
467
|
<TouchableScale_1.default accessible={true} accessibilityRole="checkbox" accessibilityLabel={`Select ${moduleItem.label}`} accessibilityState={{
|
|
472
468
|
checked: isChecked,
|
|
473
469
|
disabled: isLocked,
|
|
@@ -507,7 +503,7 @@ const SettingsPanel = () => {
|
|
|
507
503
|
</react_native_svg_1.default>) : null}
|
|
508
504
|
</TouchableScale_1.default>
|
|
509
505
|
|
|
510
|
-
|
|
506
|
+
|
|
511
507
|
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel={`${moduleItem.label} settings`} disabled={isUnavailable} onPress={() => {
|
|
512
508
|
(0, InspectorContext_1.animateNextLayout)();
|
|
513
509
|
setSettingsPage(moduleItem.key);
|
|
@@ -517,7 +513,7 @@ const SettingsPanel = () => {
|
|
|
517
513
|
alignItems: 'flex-start',
|
|
518
514
|
gap: 10,
|
|
519
515
|
}}>
|
|
520
|
-
|
|
516
|
+
|
|
521
517
|
<react_native_1.View style={{
|
|
522
518
|
width: 36,
|
|
523
519
|
height: 36,
|
|
@@ -566,7 +562,7 @@ const SettingsPanel = () => {
|
|
|
566
562
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
567
563
|
</react_native_1.View>
|
|
568
564
|
|
|
569
|
-
|
|
565
|
+
|
|
570
566
|
<react_native_1.View style={{ flex: 1, gap: 2 }}>
|
|
571
567
|
<react_native_1.View style={{
|
|
572
568
|
flexDirection: 'row',
|
|
@@ -585,7 +581,7 @@ const SettingsPanel = () => {
|
|
|
585
581
|
{moduleItem.label}
|
|
586
582
|
</react_native_1.Text>
|
|
587
583
|
|
|
588
|
-
|
|
584
|
+
|
|
589
585
|
{moduleItem.key === defaultTab &&
|
|
590
586
|
!isUnavailable && (<react_native_1.View style={{
|
|
591
587
|
flexDirection: 'row',
|
|
@@ -615,7 +611,7 @@ const SettingsPanel = () => {
|
|
|
615
611
|
</react_native_1.Text>
|
|
616
612
|
</react_native_1.View>)}
|
|
617
613
|
|
|
618
|
-
|
|
614
|
+
|
|
619
615
|
{moduleItem.key === 'apis' ? (<react_native_1.View style={{
|
|
620
616
|
backgroundColor: `${AppColors_1.AppColors.blue500}14`,
|
|
621
617
|
borderRadius: 4,
|
|
@@ -702,7 +698,7 @@ const SettingsPanel = () => {
|
|
|
702
698
|
</TouchableScale_1.default>
|
|
703
699
|
</react_native_1.View>
|
|
704
700
|
|
|
705
|
-
|
|
701
|
+
|
|
706
702
|
{!isUnavailable && (<react_native_1.View style={{
|
|
707
703
|
flexDirection: 'row',
|
|
708
704
|
alignItems: 'center',
|
|
@@ -711,7 +707,7 @@ const SettingsPanel = () => {
|
|
|
711
707
|
borderTopWidth: 1,
|
|
712
708
|
borderTopColor: AppColors_1.AppColors.dividerColor,
|
|
713
709
|
}}>
|
|
714
|
-
|
|
710
|
+
|
|
715
711
|
<react_native_1.View style={{
|
|
716
712
|
flexDirection: 'row',
|
|
717
713
|
alignItems: 'center',
|
|
@@ -736,7 +732,7 @@ const SettingsPanel = () => {
|
|
|
736
732
|
</react_native_1.Text>
|
|
737
733
|
</react_native_1.View>
|
|
738
734
|
|
|
739
|
-
|
|
735
|
+
|
|
740
736
|
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel={`Configure ${moduleItem.label} settings`} onPress={() => {
|
|
741
737
|
(0, InspectorContext_1.animateNextLayout)();
|
|
742
738
|
setSettingsPage(moduleItem.key);
|
|
@@ -769,7 +765,7 @@ const SettingsPanel = () => {
|
|
|
769
765
|
</react_native_1.View>)}
|
|
770
766
|
|
|
771
767
|
{settingsActiveSubTab === 'ui' && (<react_native_1.View style={{ gap: 14 }}>
|
|
772
|
-
|
|
768
|
+
|
|
773
769
|
<react_native_1.View style={{
|
|
774
770
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
775
771
|
borderRadius: 14,
|
|
@@ -860,7 +856,7 @@ const SettingsPanel = () => {
|
|
|
860
856
|
</react_native_1.View>
|
|
861
857
|
</react_native_1.View>
|
|
862
858
|
|
|
863
|
-
|
|
859
|
+
|
|
864
860
|
<react_native_1.View style={{
|
|
865
861
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
866
862
|
borderRadius: 14,
|
|
@@ -880,7 +876,7 @@ const SettingsPanel = () => {
|
|
|
880
876
|
{t('settings.windowLayout')}
|
|
881
877
|
</react_native_1.Text>
|
|
882
878
|
|
|
883
|
-
|
|
879
|
+
|
|
884
880
|
<react_native_1.View style={{ gap: 8 }}>
|
|
885
881
|
<react_native_1.View style={{
|
|
886
882
|
flexDirection: 'row',
|
|
@@ -959,7 +955,7 @@ const SettingsPanel = () => {
|
|
|
959
955
|
|
|
960
956
|
<react_native_1.View style={{ height: 1, backgroundColor: AppColors_1.AppColors.dividerColor }}/>
|
|
961
957
|
|
|
962
|
-
|
|
958
|
+
|
|
963
959
|
<react_native_1.View style={{ gap: 8 }}>
|
|
964
960
|
<react_native_1.View style={{
|
|
965
961
|
flexDirection: 'row',
|
|
@@ -1036,7 +1032,7 @@ const SettingsPanel = () => {
|
|
|
1036
1032
|
</react_native_1.View>
|
|
1037
1033
|
</react_native_1.View>
|
|
1038
1034
|
|
|
1039
|
-
|
|
1035
|
+
|
|
1040
1036
|
<react_native_1.View style={{
|
|
1041
1037
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1042
1038
|
borderRadius: 14,
|
|
@@ -1092,7 +1088,7 @@ const SettingsPanel = () => {
|
|
|
1092
1088
|
</react_native_1.View>
|
|
1093
1089
|
</react_native_1.View>
|
|
1094
1090
|
|
|
1095
|
-
|
|
1091
|
+
|
|
1096
1092
|
<react_native_1.View style={{ marginTop: 6, gap: 6 }}>
|
|
1097
1093
|
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel={`Default opening tab: ${allModules.find(m => m.key === defaultTab)?.label || 'APIs'}`} onPress={() => setIsDefaultTabDropdownOpen(prev => !prev)} style={{
|
|
1098
1094
|
flexDirection: 'row',
|
|
@@ -1153,7 +1149,7 @@ const SettingsPanel = () => {
|
|
|
1153
1149
|
</react_native_1.View>
|
|
1154
1150
|
</TouchableScale_1.default>
|
|
1155
1151
|
|
|
1156
|
-
|
|
1152
|
+
|
|
1157
1153
|
{isDefaultTabDropdownOpen && (<react_native_1.View style={{
|
|
1158
1154
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1159
1155
|
borderRadius: 10,
|
|
@@ -1220,7 +1216,7 @@ const SettingsPanel = () => {
|
|
|
1220
1216
|
</react_native_1.View>
|
|
1221
1217
|
</react_native_1.View>
|
|
1222
1218
|
|
|
1223
|
-
|
|
1219
|
+
|
|
1224
1220
|
<react_native_1.View style={{
|
|
1225
1221
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1226
1222
|
borderRadius: 14,
|
|
@@ -1309,7 +1305,7 @@ const SettingsPanel = () => {
|
|
|
1309
1305
|
</react_native_1.View>
|
|
1310
1306
|
</react_native_1.View>
|
|
1311
1307
|
|
|
1312
|
-
|
|
1308
|
+
|
|
1313
1309
|
<react_native_1.View style={{
|
|
1314
1310
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1315
1311
|
borderRadius: 14,
|
|
@@ -1437,7 +1433,7 @@ const SettingsPanel = () => {
|
|
|
1437
1433
|
</react_native_1.View>)}
|
|
1438
1434
|
|
|
1439
1435
|
{settingsActiveSubTab === 'limits' && (<react_native_1.View style={{ gap: 14 }}>
|
|
1440
|
-
|
|
1436
|
+
|
|
1441
1437
|
<react_native_1.View style={{
|
|
1442
1438
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1443
1439
|
borderRadius: 14,
|
|
@@ -1457,7 +1453,7 @@ const SettingsPanel = () => {
|
|
|
1457
1453
|
DEVICE MEMORY & AUTO PROFILES
|
|
1458
1454
|
</react_native_1.Text>
|
|
1459
1455
|
|
|
1460
|
-
|
|
1456
|
+
|
|
1461
1457
|
<react_native_1.View style={{
|
|
1462
1458
|
flexDirection: 'row',
|
|
1463
1459
|
alignItems: 'center',
|
|
@@ -1528,7 +1524,7 @@ const SettingsPanel = () => {
|
|
|
1528
1524
|
|
|
1529
1525
|
<react_native_1.View style={{ height: 1, backgroundColor: AppColors_1.AppColors.dividerColor }}/>
|
|
1530
1526
|
|
|
1531
|
-
|
|
1527
|
+
|
|
1532
1528
|
<react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 10 }}>
|
|
1533
1529
|
<react_native_1.View style={{
|
|
1534
1530
|
width: 32,
|
|
@@ -1590,7 +1586,7 @@ const SettingsPanel = () => {
|
|
|
1590
1586
|
</react_native_1.View>
|
|
1591
1587
|
</react_native_1.View>
|
|
1592
1588
|
|
|
1593
|
-
|
|
1589
|
+
|
|
1594
1590
|
<react_native_1.View style={{
|
|
1595
1591
|
marginTop: 4,
|
|
1596
1592
|
paddingTop: 8,
|
|
@@ -1693,7 +1689,7 @@ const SettingsPanel = () => {
|
|
|
1693
1689
|
</react_native_1.View>
|
|
1694
1690
|
</react_native_1.View>
|
|
1695
1691
|
|
|
1696
|
-
|
|
1692
|
+
|
|
1697
1693
|
<react_native_1.View style={{
|
|
1698
1694
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1699
1695
|
borderRadius: 14,
|
|
@@ -1761,7 +1757,7 @@ const SettingsPanel = () => {
|
|
|
1761
1757
|
|
|
1762
1758
|
<react_native_1.View style={{ height: 1, backgroundColor: AppColors_1.AppColors.dividerColor }}/>
|
|
1763
1759
|
|
|
1764
|
-
|
|
1760
|
+
|
|
1765
1761
|
<react_native_1.View style={{
|
|
1766
1762
|
flexDirection: 'row',
|
|
1767
1763
|
alignItems: 'center',
|
|
@@ -1812,7 +1808,7 @@ const SettingsPanel = () => {
|
|
|
1812
1808
|
<react_native_1.View style={{ height: 48 }}/>
|
|
1813
1809
|
</react_native_1.ScrollView>
|
|
1814
1810
|
|
|
1815
|
-
|
|
1811
|
+
|
|
1816
1812
|
{settingsActiveSubTab === 'module' && (<react_native_1.View style={{
|
|
1817
1813
|
paddingHorizontal: 16,
|
|
1818
1814
|
paddingTop: 12,
|
|
@@ -2034,7 +2030,7 @@ const SettingsPanel = () => {
|
|
|
2034
2030
|
})}
|
|
2035
2031
|
</react_native_1.View>
|
|
2036
2032
|
|
|
2037
|
-
|
|
2033
|
+
|
|
2038
2034
|
<react_native_1.View style={{
|
|
2039
2035
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
2040
2036
|
borderRadius: 14,
|
|
@@ -2054,7 +2050,7 @@ const SettingsPanel = () => {
|
|
|
2054
2050
|
{t('settings.logFiltersDeduplication')}
|
|
2055
2051
|
</react_native_1.Text>
|
|
2056
2052
|
|
|
2057
|
-
|
|
2053
|
+
|
|
2058
2054
|
<react_native_1.View style={{
|
|
2059
2055
|
flexDirection: 'row',
|
|
2060
2056
|
alignItems: 'center',
|
|
@@ -2593,7 +2589,7 @@ const SettingsPanel = () => {
|
|
|
2593
2589
|
flex: 1,
|
|
2594
2590
|
backgroundColor: AppColors_1.AppColors.grayBackground,
|
|
2595
2591
|
}}>
|
|
2596
|
-
|
|
2592
|
+
|
|
2597
2593
|
<react_native_1.View style={[
|
|
2598
2594
|
react_native_1.StyleSheet.absoluteFill,
|
|
2599
2595
|
settingsPage !== 'main' && { pointerEvents: 'none' },
|
|
@@ -2601,7 +2597,7 @@ const SettingsPanel = () => {
|
|
|
2601
2597
|
{renderMainSettingsContent()}
|
|
2602
2598
|
</react_native_1.View>
|
|
2603
2599
|
|
|
2604
|
-
|
|
2600
|
+
|
|
2605
2601
|
{settingsPage !== 'main' && (<react_native_1.Animated.View style={[
|
|
2606
2602
|
react_native_1.StyleSheet.absoluteFill,
|
|
2607
2603
|
{
|
|
@@ -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}/>
|