react-native-inapp-inspector 2.0.4 → 2.0.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/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
- package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.2.0/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build/reports/problems/problems-report.html +659 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +11 -0
- package/dist/commonjs/components/Inspector/AuditTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/AuditTab.js +741 -0
- package/dist/commonjs/components/Inspector/DeviceTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/DeviceTab.js +717 -0
- package/dist/commonjs/components/Inspector/InspectorHeader.js +115 -75
- package/dist/commonjs/components/Inspector/MainScreen.js +16 -2
- package/dist/commonjs/components/Inspector/NetworkDetail.js +15 -0
- package/dist/commonjs/components/Inspector/NetworkTab.js +317 -12
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +88 -39
- package/dist/commonjs/components/Inspector/PerformanceHud.d.ts +7 -0
- package/dist/commonjs/components/Inspector/PerformanceHud.js +210 -0
- package/dist/commonjs/components/Inspector/PerformanceTab.js +30 -18
- package/dist/commonjs/components/Inspector/RequestReplayModal.d.ts +9 -0
- package/dist/commonjs/components/Inspector/RequestReplayModal.js +792 -0
- package/dist/commonjs/components/Inspector/RequestReplayView.d.ts +8 -0
- package/dist/commonjs/components/Inspector/RequestReplayView.js +871 -0
- package/dist/commonjs/components/Inspector/SettingsPanel.js +847 -370
- package/dist/commonjs/components/Inspector/StorageTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/StorageTab.js +610 -0
- package/dist/commonjs/components/Inspector/TabBar.js +23 -2
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.d.ts +8 -0
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +469 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +12 -0
- package/dist/commonjs/components/NetworkIcons.js +72 -3
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/storageInspector.d.ts +13 -0
- package/dist/commonjs/customHooks/storageInspector.js +179 -0
- package/dist/commonjs/helpers/deviceInfo.d.ts +4 -0
- package/dist/commonjs/helpers/deviceInfo.js +94 -0
- package/dist/commonjs/helpers/index.d.ts +2 -0
- package/dist/commonjs/helpers/index.js +12 -1
- package/dist/commonjs/helpers/packageAuditor.d.ts +5 -0
- package/dist/commonjs/helpers/packageAuditor.js +182 -0
- package/dist/commonjs/helpers/searchQueryParser.d.ts +8 -3
- package/dist/commonjs/helpers/searchQueryParser.js +85 -31
- package/dist/commonjs/helpers/telemetry.js +4 -4
- package/dist/commonjs/i18n/locales/en.json +3 -2
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.js +171 -16
- package/dist/commonjs/native/NativeInspector.d.ts +1 -0
- package/dist/commonjs/types/enums.d.ts +7 -0
- package/dist/commonjs/types/enums.js +7 -0
- package/dist/commonjs/types/interfaces.d.ts +82 -0
- package/dist/esm/components/Inspector/AuditTab.d.ts +3 -0
- package/dist/esm/components/Inspector/AuditTab.js +702 -0
- package/dist/esm/components/Inspector/DeviceTab.d.ts +3 -0
- package/dist/esm/components/Inspector/DeviceTab.js +678 -0
- package/dist/esm/components/Inspector/InspectorHeader.js +115 -75
- package/dist/esm/components/Inspector/MainScreen.js +16 -2
- package/dist/esm/components/Inspector/NetworkDetail.js +16 -1
- package/dist/esm/components/Inspector/NetworkTab.js +317 -12
- package/dist/esm/components/Inspector/NpmUpdateToast.js +88 -39
- package/dist/esm/components/Inspector/PerformanceHud.d.ts +7 -0
- package/dist/esm/components/Inspector/PerformanceHud.js +170 -0
- package/dist/esm/components/Inspector/PerformanceTab.js +31 -19
- package/dist/esm/components/Inspector/RequestReplayModal.d.ts +9 -0
- package/dist/esm/components/Inspector/RequestReplayModal.js +752 -0
- package/dist/esm/components/Inspector/RequestReplayView.d.ts +8 -0
- package/dist/esm/components/Inspector/RequestReplayView.js +831 -0
- package/dist/esm/components/Inspector/SettingsPanel.js +848 -371
- package/dist/esm/components/Inspector/StorageTab.d.ts +3 -0
- package/dist/esm/components/Inspector/StorageTab.js +571 -0
- package/dist/esm/components/Inspector/TabBar.js +24 -3
- package/dist/esm/components/Inspector/UpdateAvailableModal.d.ts +8 -0
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +432 -0
- package/dist/esm/components/NetworkIcons.d.ts +12 -0
- package/dist/esm/components/NetworkIcons.js +57 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/storageInspector.d.ts +13 -0
- package/dist/esm/customHooks/storageInspector.js +170 -0
- package/dist/esm/helpers/deviceInfo.d.ts +4 -0
- package/dist/esm/helpers/deviceInfo.js +89 -0
- package/dist/esm/helpers/index.d.ts +2 -0
- package/dist/esm/helpers/index.js +10 -0
- package/dist/esm/helpers/packageAuditor.d.ts +5 -0
- package/dist/esm/helpers/packageAuditor.js +173 -0
- package/dist/esm/helpers/searchQueryParser.d.ts +8 -3
- package/dist/esm/helpers/searchQueryParser.js +85 -31
- package/dist/esm/helpers/telemetry.js +4 -4
- package/dist/esm/i18n/locales/en.json +3 -2
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +167 -15
- package/dist/esm/native/NativeInspector.d.ts +1 -0
- package/dist/esm/types/enums.d.ts +7 -0
- package/dist/esm/types/enums.js +7 -0
- package/dist/esm/types/interfaces.d.ts +82 -0
- package/ios/NetworkInspectorModule.mm +12 -5
- package/package.json +4 -1
|
@@ -57,9 +57,12 @@ const analyticsLogger_2 = require("../../customHooks/analyticsLogger");
|
|
|
57
57
|
const i18n_1 = require("../../i18n");
|
|
58
58
|
const telemetry_1 = require("../../helpers/telemetry");
|
|
59
59
|
const NetworkIcons_1 = require("../NetworkIcons");
|
|
60
|
+
const constants_1 = require("../../constants");
|
|
61
|
+
const helpers_1 = require("../../helpers");
|
|
62
|
+
const toast_1 = require("../../helpers/toast");
|
|
60
63
|
const SettingsPanel = () => {
|
|
61
64
|
const { t } = (0, i18n_1.useTranslation)();
|
|
62
|
-
const { settingsPage, setSettingsPage, settingsActiveSubTab, setSettingsActiveSubTab, tabVisibility, toggleTabVisibility, defaultTab, setDefaultTab, isDark, setIsDark, modalHeightPercent, setModalHeightPercent, modalAnimationType, setModalAnimationType, showDuplicateLogs, setShowDuplicateLogs, showUpdateToast, setShowUpdateToast, showConsoleLevels, setShowConsoleLevels, resetToDefaults, storage, logs, consoleLogs, analyticsEvents, reduxState, maxNetworkLogs, setMaxNetworkLogs, maxConsoleLogs, setMaxConsoleLogs, maxAnalyticsEventsLimit, setMaxAnalyticsEventsLimit, isAutoRamLimitEnabled, setIsAutoRamLimitEnabled, deviceFreeRamMb, reduxAutoRefresh, setReduxAutoRefreshState, reduxExpandDepth, setReduxExpandDepth, switchActiveTab, setSelected, setSelectedEvent, setReduxState, crashRecords, maxCrashLogs, setMaxCrashLogs, } = (0, InspectorContext_1.useInspector)();
|
|
65
|
+
const { settingsPage, setSettingsPage, settingsActiveSubTab, setSettingsActiveSubTab, tabVisibility, toggleTabVisibility, defaultTab, setDefaultTab, isDark, setIsDark, modalHeightPercent, setModalHeightPercent, modalAnimationType, setModalAnimationType, showDuplicateLogs, setShowDuplicateLogs, showUpdateToast, setShowUpdateToast, showConsoleLevels, setShowConsoleLevels, resetToDefaults, storage, logs, consoleLogs, analyticsEvents, reduxState, maxNetworkLogs, setMaxNetworkLogs, maxConsoleLogs, setMaxConsoleLogs, maxAnalyticsEventsLimit, setMaxAnalyticsEventsLimit, isAutoRamLimitEnabled, setIsAutoRamLimitEnabled, deviceFreeRamMb, isPerformanceHudEnabled, setIsPerformanceHudEnabled, reduxAutoRefresh, setReduxAutoRefreshState, reduxExpandDepth, setReduxExpandDepth, switchActiveTab, setSelected, setSelectedEvent, setReduxState, crashRecords, maxCrashLogs, setMaxCrashLogs, updateAvailable, latestNpmVersion, } = (0, InspectorContext_1.useInspector)();
|
|
63
66
|
const [stagedHeight, setStagedHeight] = (0, react_1.useState)(modalHeightPercent);
|
|
64
67
|
const [telemetryConsent, setTelemetryConsentState] = (0, react_1.useState)(true);
|
|
65
68
|
(0, react_1.useEffect)(() => {
|
|
@@ -98,6 +101,27 @@ const SettingsPanel = () => {
|
|
|
98
101
|
icon: 'logs',
|
|
99
102
|
desc: 'Terminal console logs, warnings, errors & stack traces',
|
|
100
103
|
},
|
|
104
|
+
{
|
|
105
|
+
key: 'storage',
|
|
106
|
+
label: 'Storage (AsyncStorage)',
|
|
107
|
+
category: 'core',
|
|
108
|
+
icon: 'storage',
|
|
109
|
+
desc: 'Browse, edit, create and delete local key-value storage & JSON',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
key: 'device',
|
|
113
|
+
label: 'Device & System Info',
|
|
114
|
+
category: 'diagnostic',
|
|
115
|
+
icon: 'device',
|
|
116
|
+
desc: 'Hermes runtime, Fabric New Arch, screen metrics & build info',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
key: 'audit',
|
|
120
|
+
label: 'Code Quality & Package Audit',
|
|
121
|
+
category: 'diagnostic',
|
|
122
|
+
icon: 'audit',
|
|
123
|
+
desc: 'Audit dependencies, peer conflicts, TS schema errors & React Native anti-patterns',
|
|
124
|
+
},
|
|
101
125
|
{
|
|
102
126
|
key: 'performance',
|
|
103
127
|
label: 'Performance Tracker',
|
|
@@ -140,6 +164,9 @@ const SettingsPanel = () => {
|
|
|
140
164
|
logs: Boolean(tabVisibility?.logs),
|
|
141
165
|
analytics: Boolean(tabVisibility?.analytics),
|
|
142
166
|
redux: Boolean(tabVisibility?.redux),
|
|
167
|
+
storage: Boolean(tabVisibility?.storage),
|
|
168
|
+
device: Boolean(tabVisibility?.device),
|
|
169
|
+
audit: Boolean(tabVisibility?.audit),
|
|
143
170
|
bundle: Boolean(tabVisibility?.bundle),
|
|
144
171
|
performance: Boolean(tabVisibility?.performance),
|
|
145
172
|
crash: Boolean(tabVisibility?.crash),
|
|
@@ -151,6 +178,9 @@ const SettingsPanel = () => {
|
|
|
151
178
|
logs: Boolean(tabVisibility?.logs),
|
|
152
179
|
analytics: Boolean(tabVisibility?.analytics),
|
|
153
180
|
redux: Boolean(tabVisibility?.redux),
|
|
181
|
+
storage: Boolean(tabVisibility?.storage),
|
|
182
|
+
device: Boolean(tabVisibility?.device),
|
|
183
|
+
audit: Boolean(tabVisibility?.audit),
|
|
154
184
|
bundle: Boolean(tabVisibility?.bundle),
|
|
155
185
|
performance: Boolean(tabVisibility?.performance),
|
|
156
186
|
crash: Boolean(tabVisibility?.crash),
|
|
@@ -258,13 +288,15 @@ const SettingsPanel = () => {
|
|
|
258
288
|
MAX
|
|
259
289
|
</react_native_1.Text>
|
|
260
290
|
</react_native_1.View>
|
|
261
|
-
{opts.numericInput.min !== undefined ||
|
|
291
|
+
{opts.numericInput.min !== undefined ||
|
|
292
|
+
opts.numericInput.max !== undefined ? (<react_native_1.Text style={{
|
|
262
293
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
263
294
|
fontSize: 10,
|
|
264
295
|
lineHeight: 13,
|
|
265
296
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
266
297
|
}}>
|
|
267
|
-
Range: {opts.numericInput.min ?? 1} -
|
|
298
|
+
Range: {opts.numericInput.min ?? 1} -{' '}
|
|
299
|
+
{opts.numericInput.max ?? '∞'}
|
|
268
300
|
</react_native_1.Text>) : null}
|
|
269
301
|
</react_native_1.View>)}
|
|
270
302
|
{opts.picker && (<react_native_1.View style={{
|
|
@@ -307,8 +339,8 @@ const SettingsPanel = () => {
|
|
|
307
339
|
backgroundColor: AppColors_1.AppColors.grayBackground,
|
|
308
340
|
}}>
|
|
309
341
|
<react_native_1.ScrollView style={{ flex: 1 }} contentContainerStyle={{ padding: 16, paddingBottom: 100, gap: 14 }} showsVerticalScrollIndicator={false}>
|
|
310
|
-
|
|
311
|
-
|
|
342
|
+
{/* Segmented Top Navigation Sub-Tabs */}
|
|
343
|
+
<react_native_1.View style={{
|
|
312
344
|
flexDirection: 'row',
|
|
313
345
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
314
346
|
borderRadius: 12,
|
|
@@ -320,71 +352,104 @@ const SettingsPanel = () => {
|
|
|
320
352
|
shadowRadius: 4,
|
|
321
353
|
shadowOffset: { width: 0, height: 2 },
|
|
322
354
|
}}>
|
|
323
|
-
|
|
355
|
+
{/* Tab 1: Modules & Tabs */}
|
|
356
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="tab" accessibilityLabel={t('settings.modulesAndTools')} accessibilityState={{ selected: settingsActiveSubTab === 'module' }} onPress={() => {
|
|
324
357
|
(0, InspectorContext_1.animateNextLayout)();
|
|
325
358
|
setSettingsActiveSubTab('module');
|
|
326
359
|
}} style={{
|
|
327
360
|
flex: 1,
|
|
328
|
-
paddingVertical:
|
|
361
|
+
paddingVertical: 8,
|
|
329
362
|
flexDirection: 'row',
|
|
330
363
|
alignItems: 'center',
|
|
331
364
|
justifyContent: 'center',
|
|
332
|
-
gap:
|
|
365
|
+
gap: 5,
|
|
333
366
|
borderRadius: 9,
|
|
334
367
|
backgroundColor: settingsActiveSubTab === 'module'
|
|
335
368
|
? AppColors_1.AppColors.purple
|
|
336
369
|
: 'transparent',
|
|
337
370
|
}}>
|
|
338
|
-
|
|
371
|
+
<NetworkIcons_1.LayersIcon color={settingsActiveSubTab === 'module'
|
|
339
372
|
? AppColors_1.AppColors.white
|
|
340
|
-
: AppColors_1.AppColors.grayText} size={
|
|
341
|
-
|
|
373
|
+
: AppColors_1.AppColors.grayText} size={12.5}/>
|
|
374
|
+
<react_native_1.Text style={{
|
|
342
375
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
343
|
-
fontSize:
|
|
344
|
-
lineHeight:
|
|
376
|
+
fontSize: 11.5,
|
|
377
|
+
lineHeight: 15,
|
|
345
378
|
color: settingsActiveSubTab === 'module'
|
|
346
379
|
? AppColors_1.AppColors.white
|
|
347
380
|
: AppColors_1.AppColors.grayText,
|
|
348
381
|
}}>
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
382
|
+
{t('settings.modulesAndTools')}
|
|
383
|
+
</react_native_1.Text>
|
|
384
|
+
</TouchableScale_1.default>
|
|
385
|
+
|
|
386
|
+
{/* Tab 2: RAM & Limits */}
|
|
387
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="tab" accessibilityLabel={t('settings.ramLimits')} accessibilityState={{ selected: settingsActiveSubTab === 'limits' }} onPress={() => {
|
|
388
|
+
(0, InspectorContext_1.animateNextLayout)();
|
|
389
|
+
setSettingsActiveSubTab('limits');
|
|
390
|
+
}} style={{
|
|
391
|
+
flex: 1,
|
|
392
|
+
paddingVertical: 8,
|
|
393
|
+
flexDirection: 'row',
|
|
394
|
+
alignItems: 'center',
|
|
395
|
+
justifyContent: 'center',
|
|
396
|
+
gap: 5,
|
|
397
|
+
borderRadius: 9,
|
|
398
|
+
backgroundColor: settingsActiveSubTab === 'limits'
|
|
399
|
+
? AppColors_1.AppColors.purple
|
|
400
|
+
: 'transparent',
|
|
401
|
+
}}>
|
|
402
|
+
<NetworkIcons_1.CpuIcon color={settingsActiveSubTab === 'limits'
|
|
403
|
+
? AppColors_1.AppColors.white
|
|
404
|
+
: AppColors_1.AppColors.grayText} size={12.5}/>
|
|
405
|
+
<react_native_1.Text style={{
|
|
406
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
407
|
+
fontSize: 11.5,
|
|
408
|
+
lineHeight: 15,
|
|
409
|
+
color: settingsActiveSubTab === 'limits'
|
|
410
|
+
? AppColors_1.AppColors.white
|
|
411
|
+
: AppColors_1.AppColors.grayText,
|
|
412
|
+
}}>
|
|
413
|
+
{t('settings.ramLimits')}
|
|
414
|
+
</react_native_1.Text>
|
|
415
|
+
</TouchableScale_1.default>
|
|
352
416
|
|
|
353
|
-
|
|
417
|
+
{/* Tab 3: UI & Appearance */}
|
|
418
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="tab" accessibilityLabel={t('settings.uiPreferences')} accessibilityState={{ selected: settingsActiveSubTab === 'ui' }} onPress={() => {
|
|
354
419
|
(0, InspectorContext_1.animateNextLayout)();
|
|
355
420
|
setSettingsActiveSubTab('ui');
|
|
356
421
|
}} style={{
|
|
357
422
|
flex: 1,
|
|
358
|
-
paddingVertical:
|
|
423
|
+
paddingVertical: 8,
|
|
359
424
|
flexDirection: 'row',
|
|
360
425
|
alignItems: 'center',
|
|
361
426
|
justifyContent: 'center',
|
|
362
|
-
gap:
|
|
427
|
+
gap: 5,
|
|
363
428
|
borderRadius: 9,
|
|
364
429
|
backgroundColor: settingsActiveSubTab === 'ui'
|
|
365
430
|
? AppColors_1.AppColors.purple
|
|
366
431
|
: 'transparent',
|
|
367
432
|
}}>
|
|
368
|
-
|
|
433
|
+
<NetworkIcons_1.ScreenIcon color={settingsActiveSubTab === 'ui'
|
|
369
434
|
? AppColors_1.AppColors.white
|
|
370
|
-
: AppColors_1.AppColors.grayText} size={
|
|
371
|
-
|
|
435
|
+
: AppColors_1.AppColors.grayText} size={12.5}/>
|
|
436
|
+
<react_native_1.Text style={{
|
|
372
437
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
373
|
-
fontSize:
|
|
374
|
-
lineHeight:
|
|
438
|
+
fontSize: 11.5,
|
|
439
|
+
lineHeight: 15,
|
|
375
440
|
color: settingsActiveSubTab === 'ui'
|
|
376
441
|
? AppColors_1.AppColors.white
|
|
377
442
|
: AppColors_1.AppColors.grayText,
|
|
378
443
|
}}>
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
444
|
+
{t('settings.uiPreferences')}
|
|
445
|
+
</react_native_1.Text>
|
|
446
|
+
</TouchableScale_1.default>
|
|
447
|
+
</react_native_1.View>
|
|
383
448
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
449
|
+
{settingsActiveSubTab === 'module' && (<react_native_1.View style={{ gap: 12 }}>
|
|
450
|
+
{/* Individual Module Cards with Left Checkboxes */}
|
|
451
|
+
<react_native_1.View style={{ gap: 10 }}>
|
|
452
|
+
{allModules.map(moduleItem => {
|
|
388
453
|
const isReduxAvail = (0, reduxLogger_1.isReduxConnected)();
|
|
389
454
|
const isAnalyticsAvail = (0, analyticsLogger_2.isAnalyticsConnected)();
|
|
390
455
|
const isUnavailable = (moduleItem.key === 'redux' && !isReduxAvail) ||
|
|
@@ -422,14 +487,14 @@ const SettingsPanel = () => {
|
|
|
422
487
|
shadowRadius: 5,
|
|
423
488
|
shadowOffset: { width: 0, height: 2 },
|
|
424
489
|
}}>
|
|
425
|
-
|
|
426
|
-
|
|
490
|
+
{/* Top Row: [Checkbox] -> [Icon Tile] -> [Title & Subtitle] */}
|
|
491
|
+
<react_native_1.View style={{
|
|
427
492
|
flexDirection: 'row',
|
|
428
493
|
alignItems: 'flex-start',
|
|
429
494
|
gap: 10,
|
|
430
495
|
}}>
|
|
431
|
-
|
|
432
|
-
|
|
496
|
+
{/* 1. Checkbox on the Left */}
|
|
497
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="checkbox" accessibilityLabel={`Select ${moduleItem.label}`} accessibilityState={{
|
|
433
498
|
checked: isChecked,
|
|
434
499
|
disabled: isLocked,
|
|
435
500
|
}} disabled={isLocked} onPress={() => {
|
|
@@ -462,14 +527,14 @@ const SettingsPanel = () => {
|
|
|
462
527
|
shadowRadius: 2,
|
|
463
528
|
elevation: isChecked ? 2 : 0,
|
|
464
529
|
}}>
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
530
|
+
{moduleItem.key === 'apis' ? (<NetworkIcons_1.CheckIcon size={12} color={AppColors_1.AppColors.blue500}/>) : isChecked ? (<NetworkIcons_1.CheckIcon size={12} color={AppColors_1.AppColors.white}/>) : isLocked ? (<react_native_svg_1.default width={10} height={10} viewBox="0 0 24 24" fill="none">
|
|
531
|
+
<react_native_svg_1.Path d="M7 10V7a5 5 0 0 1 10 0v3" stroke={AppColors_1.AppColors.grayText} strokeWidth="2.2" strokeLinecap="round"/>
|
|
532
|
+
<react_native_svg_1.Path d="M5 10h14v9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" fill={AppColors_1.AppColors.grayText}/>
|
|
533
|
+
</react_native_svg_1.default>) : null}
|
|
534
|
+
</TouchableScale_1.default>
|
|
470
535
|
|
|
471
|
-
|
|
472
|
-
|
|
536
|
+
{/* 2. Middle Tap Zone: Icon + Title & Desc */}
|
|
537
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel={`${moduleItem.label} settings`} disabled={isUnavailable} onPress={() => {
|
|
473
538
|
(0, InspectorContext_1.animateNextLayout)();
|
|
474
539
|
setSettingsPage(moduleItem.key);
|
|
475
540
|
}} style={{
|
|
@@ -478,8 +543,8 @@ const SettingsPanel = () => {
|
|
|
478
543
|
alignItems: 'flex-start',
|
|
479
544
|
gap: 10,
|
|
480
545
|
}}>
|
|
481
|
-
|
|
482
|
-
|
|
546
|
+
{/* Icon Tile */}
|
|
547
|
+
<react_native_1.View style={{
|
|
483
548
|
width: 36,
|
|
484
549
|
height: 36,
|
|
485
550
|
borderRadius: 10,
|
|
@@ -498,38 +563,47 @@ const SettingsPanel = () => {
|
|
|
498
563
|
justifyContent: 'center',
|
|
499
564
|
marginTop: 1,
|
|
500
565
|
}}>
|
|
501
|
-
|
|
566
|
+
{moduleItem.icon === 'apis' && (<NetworkIcons_1.SignalIcon color={isChecked
|
|
502
567
|
? AppColors_1.AppColors.purple
|
|
503
568
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
504
|
-
|
|
569
|
+
{moduleItem.icon === 'logs' && (<NetworkIcons_1.TerminalIcon color={isChecked
|
|
505
570
|
? AppColors_1.AppColors.purple
|
|
506
571
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
507
|
-
|
|
572
|
+
{moduleItem.icon === 'performance' && (<NetworkIcons_1.PerformanceIcon color={isChecked
|
|
508
573
|
? AppColors_1.AppColors.purple
|
|
509
574
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
510
|
-
|
|
575
|
+
{moduleItem.icon === 'bundle' && (<NetworkIcons_1.PackageIcon color={isChecked
|
|
511
576
|
? AppColors_1.AppColors.purple
|
|
512
577
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
513
|
-
|
|
578
|
+
{moduleItem.icon === 'crash' && (<NetworkIcons_1.CrashIcon color={isChecked
|
|
514
579
|
? AppColors_1.AppColors.purple
|
|
515
580
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
516
|
-
|
|
581
|
+
{moduleItem.icon === 'analytics' && (<NetworkIcons_1.AnalyticsIcon color={isChecked
|
|
517
582
|
? AppColors_1.AppColors.purple
|
|
518
583
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
519
|
-
|
|
584
|
+
{moduleItem.icon === 'storage' && (<NetworkIcons_1.DatabaseIcon color={isChecked
|
|
520
585
|
? AppColors_1.AppColors.purple
|
|
521
586
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
522
|
-
|
|
587
|
+
{moduleItem.icon === 'device' && (<NetworkIcons_1.DevicePhoneIcon color={isChecked
|
|
588
|
+
? AppColors_1.AppColors.purple
|
|
589
|
+
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
590
|
+
{moduleItem.icon === 'audit' && (<NetworkIcons_1.ShieldCheckIcon color={isChecked
|
|
591
|
+
? AppColors_1.AppColors.purple
|
|
592
|
+
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
593
|
+
{moduleItem.icon === 'redux' && (<NetworkIcons_1.ReduxIcon color={isChecked
|
|
594
|
+
? AppColors_1.AppColors.purple
|
|
595
|
+
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
596
|
+
</react_native_1.View>
|
|
523
597
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
598
|
+
{/* Titles & Status Pill */}
|
|
599
|
+
<react_native_1.View style={{ flex: 1, gap: 2 }}>
|
|
600
|
+
<react_native_1.View style={{
|
|
527
601
|
flexDirection: 'row',
|
|
528
602
|
alignItems: 'center',
|
|
529
603
|
gap: 6,
|
|
530
604
|
flexWrap: 'wrap',
|
|
531
605
|
}}>
|
|
532
|
-
|
|
606
|
+
<react_native_1.Text style={{
|
|
533
607
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
534
608
|
fontSize: 14,
|
|
535
609
|
lineHeight: 18,
|
|
@@ -537,11 +611,11 @@ const SettingsPanel = () => {
|
|
|
537
611
|
? AppColors_1.AppColors.grayText
|
|
538
612
|
: AppColors_1.AppColors.primaryBlack,
|
|
539
613
|
}}>
|
|
540
|
-
|
|
541
|
-
|
|
614
|
+
{moduleItem.label}
|
|
615
|
+
</react_native_1.Text>
|
|
542
616
|
|
|
543
|
-
|
|
544
|
-
|
|
617
|
+
{/* Default Startup Tab Badge */}
|
|
618
|
+
{moduleItem.key === defaultTab &&
|
|
545
619
|
!isUnavailable && (<react_native_1.View style={{
|
|
546
620
|
flexDirection: 'row',
|
|
547
621
|
alignItems: 'center',
|
|
@@ -553,25 +627,25 @@ const SettingsPanel = () => {
|
|
|
553
627
|
borderColor: `${AppColors_1.AppColors.purple}2E`,
|
|
554
628
|
gap: 3,
|
|
555
629
|
}}>
|
|
556
|
-
|
|
630
|
+
<react_native_1.View style={{
|
|
557
631
|
width: 4,
|
|
558
632
|
height: 4,
|
|
559
633
|
borderRadius: 2,
|
|
560
634
|
backgroundColor: AppColors_1.AppColors.purple,
|
|
561
635
|
}}/>
|
|
562
|
-
|
|
636
|
+
<react_native_1.Text style={{
|
|
563
637
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
564
638
|
fontSize: 8,
|
|
565
639
|
lineHeight: 11,
|
|
566
640
|
color: AppColors_1.AppColors.purple,
|
|
567
641
|
letterSpacing: 0.4,
|
|
568
642
|
}}>
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
643
|
+
{t('settings.defaultBadge')}
|
|
644
|
+
</react_native_1.Text>
|
|
645
|
+
</react_native_1.View>)}
|
|
572
646
|
|
|
573
|
-
|
|
574
|
-
|
|
647
|
+
{/* Status Pill */}
|
|
648
|
+
{moduleItem.key === 'apis' ? (<react_native_1.View style={{
|
|
575
649
|
backgroundColor: `${AppColors_1.AppColors.blue500}14`,
|
|
576
650
|
borderRadius: 4,
|
|
577
651
|
paddingHorizontal: 5,
|
|
@@ -579,16 +653,16 @@ const SettingsPanel = () => {
|
|
|
579
653
|
borderWidth: 1,
|
|
580
654
|
borderColor: `${AppColors_1.AppColors.blue500}33`,
|
|
581
655
|
}}>
|
|
582
|
-
|
|
656
|
+
<react_native_1.Text style={{
|
|
583
657
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
584
658
|
fontSize: 8,
|
|
585
659
|
lineHeight: 11,
|
|
586
660
|
color: AppColors_1.AppColors.blue500,
|
|
587
661
|
letterSpacing: 0.3,
|
|
588
662
|
}}>
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
663
|
+
{t('settings.coreBadge')}
|
|
664
|
+
</react_native_1.Text>
|
|
665
|
+
</react_native_1.View>) : isUnavailable ? (<react_native_1.View style={{
|
|
592
666
|
backgroundColor: `${AppColors_1.AppColors.amber500}18`,
|
|
593
667
|
borderRadius: 4,
|
|
594
668
|
paddingHorizontal: 5,
|
|
@@ -596,18 +670,18 @@ const SettingsPanel = () => {
|
|
|
596
670
|
borderWidth: 1,
|
|
597
671
|
borderColor: `${AppColors_1.AppColors.amber500}35`,
|
|
598
672
|
}}>
|
|
599
|
-
|
|
673
|
+
<react_native_1.Text style={{
|
|
600
674
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
601
675
|
fontSize: 8,
|
|
602
676
|
lineHeight: 11,
|
|
603
677
|
color: AppColors_1.AppColors.amber700,
|
|
604
678
|
letterSpacing: 0.3,
|
|
605
679
|
}}>
|
|
606
|
-
|
|
680
|
+
{moduleItem.key === 'redux'
|
|
607
681
|
? t('settings.notConnectedBadge')
|
|
608
682
|
: t('settings.notDetectedBadge')}
|
|
609
|
-
|
|
610
|
-
|
|
683
|
+
</react_native_1.Text>
|
|
684
|
+
</react_native_1.View>) : isChecked ? (<react_native_1.View style={{
|
|
611
685
|
backgroundColor: `${AppColors_1.AppColors.liveGreen}18`,
|
|
612
686
|
borderRadius: 4,
|
|
613
687
|
paddingHorizontal: 5,
|
|
@@ -615,16 +689,16 @@ const SettingsPanel = () => {
|
|
|
615
689
|
borderWidth: 1,
|
|
616
690
|
borderColor: `${AppColors_1.AppColors.liveGreen}38`,
|
|
617
691
|
}}>
|
|
618
|
-
|
|
692
|
+
<react_native_1.Text style={{
|
|
619
693
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
620
694
|
fontSize: 8,
|
|
621
695
|
lineHeight: 11,
|
|
622
696
|
color: AppColors_1.AppColors.green700,
|
|
623
697
|
letterSpacing: 0.3,
|
|
624
698
|
}}>
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
699
|
+
{t('settings.activeBadge')}
|
|
700
|
+
</react_native_1.Text>
|
|
701
|
+
</react_native_1.View>) : (<react_native_1.View style={{
|
|
628
702
|
backgroundColor: `${AppColors_1.AppColors.grayTextWeak}18`,
|
|
629
703
|
borderRadius: 4,
|
|
630
704
|
paddingHorizontal: 5,
|
|
@@ -632,33 +706,33 @@ const SettingsPanel = () => {
|
|
|
632
706
|
borderWidth: 1,
|
|
633
707
|
borderColor: `${AppColors_1.AppColors.grayTextWeak}2E`,
|
|
634
708
|
}}>
|
|
635
|
-
|
|
709
|
+
<react_native_1.Text style={{
|
|
636
710
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
637
711
|
fontSize: 8,
|
|
638
712
|
lineHeight: 11,
|
|
639
713
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
640
714
|
letterSpacing: 0.3,
|
|
641
715
|
}}>
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
716
|
+
{t('settings.dormantBadge')}
|
|
717
|
+
</react_native_1.Text>
|
|
718
|
+
</react_native_1.View>)}
|
|
719
|
+
</react_native_1.View>
|
|
646
720
|
|
|
647
|
-
|
|
721
|
+
<react_native_1.Text style={{
|
|
648
722
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
649
723
|
fontSize: 11,
|
|
650
724
|
color: AppColors_1.AppColors.grayText,
|
|
651
725
|
lineHeight: 15,
|
|
652
726
|
marginTop: 1,
|
|
653
727
|
}}>
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
728
|
+
{moduleItem.desc}
|
|
729
|
+
</react_native_1.Text>
|
|
730
|
+
</react_native_1.View>
|
|
731
|
+
</TouchableScale_1.default>
|
|
732
|
+
</react_native_1.View>
|
|
659
733
|
|
|
660
|
-
|
|
661
|
-
|
|
734
|
+
{/* Card Footer: Live Stats + Configure Button */}
|
|
735
|
+
{!isUnavailable && (<react_native_1.View style={{
|
|
662
736
|
flexDirection: 'row',
|
|
663
737
|
alignItems: 'center',
|
|
664
738
|
justifyContent: 'space-between',
|
|
@@ -666,14 +740,14 @@ const SettingsPanel = () => {
|
|
|
666
740
|
borderTopWidth: 1,
|
|
667
741
|
borderTopColor: AppColors_1.AppColors.dividerColor,
|
|
668
742
|
}}>
|
|
669
|
-
|
|
670
|
-
|
|
743
|
+
{/* Live Info Pill */}
|
|
744
|
+
<react_native_1.View style={{
|
|
671
745
|
flexDirection: 'row',
|
|
672
746
|
alignItems: 'center',
|
|
673
747
|
gap: 6,
|
|
674
748
|
flex: 1,
|
|
675
749
|
}}>
|
|
676
|
-
|
|
750
|
+
<react_native_1.View style={{
|
|
677
751
|
width: 6,
|
|
678
752
|
height: 6,
|
|
679
753
|
borderRadius: 3,
|
|
@@ -681,18 +755,18 @@ const SettingsPanel = () => {
|
|
|
681
755
|
? AppColors_1.AppColors.liveGreen
|
|
682
756
|
: AppColors_1.AppColors.grayTextWeak,
|
|
683
757
|
}}/>
|
|
684
|
-
|
|
758
|
+
<react_native_1.Text style={{
|
|
685
759
|
fontFamily: AppFonts_1.AppFonts.interMedium,
|
|
686
760
|
fontSize: 11,
|
|
687
761
|
color: AppColors_1.AppColors.grayText,
|
|
688
762
|
lineHeight: 14,
|
|
689
763
|
}}>
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
764
|
+
{liveStats}
|
|
765
|
+
</react_native_1.Text>
|
|
766
|
+
</react_native_1.View>
|
|
693
767
|
|
|
694
|
-
|
|
695
|
-
|
|
768
|
+
{/* Sleek Configure Button */}
|
|
769
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel={`Configure ${moduleItem.label} settings`} onPress={() => {
|
|
696
770
|
(0, InspectorContext_1.animateNextLayout)();
|
|
697
771
|
setSettingsPage(moduleItem.key);
|
|
698
772
|
}} style={{
|
|
@@ -706,24 +780,27 @@ const SettingsPanel = () => {
|
|
|
706
780
|
borderWidth: 1,
|
|
707
781
|
borderColor: `${AppColors_1.AppColors.purple}26`,
|
|
708
782
|
}}>
|
|
709
|
-
|
|
710
|
-
|
|
783
|
+
<NetworkIcons_1.SettingsIcon color={AppColors_1.AppColors.purple} size={11}/>
|
|
784
|
+
<react_native_1.Text style={{
|
|
711
785
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
712
786
|
fontSize: 11,
|
|
713
787
|
lineHeight: 14,
|
|
714
788
|
color: AppColors_1.AppColors.purple,
|
|
715
789
|
}}>
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
790
|
+
{t('settings.configure')}
|
|
791
|
+
</react_native_1.Text>
|
|
792
|
+
<NetworkIcons_1.ForwardChevronIcon color={AppColors_1.AppColors.purple} size={9}/>
|
|
793
|
+
</TouchableScale_1.default>
|
|
794
|
+
</react_native_1.View>)}
|
|
795
|
+
</react_native_1.View>);
|
|
722
796
|
})}
|
|
723
|
-
|
|
797
|
+
</react_native_1.View>
|
|
798
|
+
</react_native_1.View>)}
|
|
724
799
|
|
|
725
|
-
|
|
726
|
-
|
|
800
|
+
{/* ─── TAB 2: RAM & RESOURCE LIMITS ──────────────────────────────────── */}
|
|
801
|
+
{settingsActiveSubTab === 'limits' && (<react_native_1.View style={{ gap: 14 }}>
|
|
802
|
+
{/* Section 1: RAM-Based Auto Limits */}
|
|
803
|
+
<react_native_1.View style={{
|
|
727
804
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
728
805
|
borderRadius: 14,
|
|
729
806
|
borderWidth: 1,
|
|
@@ -732,29 +809,29 @@ const SettingsPanel = () => {
|
|
|
732
809
|
padding: 14,
|
|
733
810
|
gap: 12,
|
|
734
811
|
}}>
|
|
735
|
-
|
|
812
|
+
<react_native_1.Text style={{
|
|
736
813
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
737
814
|
fontSize: 11,
|
|
738
815
|
lineHeight: 14,
|
|
739
816
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
740
817
|
letterSpacing: 0.8,
|
|
741
818
|
}}>
|
|
742
|
-
|
|
743
|
-
|
|
819
|
+
RAM-BASED AUTO TUNING
|
|
820
|
+
</react_native_1.Text>
|
|
744
821
|
|
|
745
|
-
|
|
746
|
-
|
|
822
|
+
{/* Auto RAM Limit Toggle */}
|
|
823
|
+
<react_native_1.View style={{
|
|
747
824
|
flexDirection: 'row',
|
|
748
825
|
alignItems: 'center',
|
|
749
826
|
justifyContent: 'space-between',
|
|
750
827
|
}}>
|
|
751
|
-
|
|
828
|
+
<react_native_1.View style={{
|
|
752
829
|
flexDirection: 'row',
|
|
753
830
|
alignItems: 'center',
|
|
754
831
|
gap: 10,
|
|
755
832
|
flex: 1,
|
|
756
833
|
}}>
|
|
757
|
-
|
|
834
|
+
<react_native_1.View style={{
|
|
758
835
|
width: 32,
|
|
759
836
|
height: 32,
|
|
760
837
|
borderRadius: 8,
|
|
@@ -762,30 +839,31 @@ const SettingsPanel = () => {
|
|
|
762
839
|
alignItems: 'center',
|
|
763
840
|
justifyContent: 'center',
|
|
764
841
|
}}>
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
842
|
+
<NetworkIcons_1.PerformanceIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
843
|
+
</react_native_1.View>
|
|
844
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
845
|
+
<react_native_1.Text style={{
|
|
769
846
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
770
847
|
fontSize: 13.5,
|
|
771
848
|
lineHeight: 18,
|
|
772
849
|
color: AppColors_1.AppColors.primaryBlack,
|
|
773
850
|
}}>
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
851
|
+
Auto-Calculate Limits from Device RAM
|
|
852
|
+
</react_native_1.Text>
|
|
853
|
+
<react_native_1.Text style={{
|
|
777
854
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
778
855
|
fontSize: 11,
|
|
779
856
|
lineHeight: 15,
|
|
780
857
|
color: AppColors_1.AppColors.grayText,
|
|
781
858
|
marginTop: 1,
|
|
782
859
|
}}>
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
</react_native_1.
|
|
860
|
+
Automatically set API, Logs, Analytics & Crash limits
|
|
861
|
+
based on available memory
|
|
862
|
+
</react_native_1.Text>
|
|
786
863
|
</react_native_1.View>
|
|
864
|
+
</react_native_1.View>
|
|
787
865
|
|
|
788
|
-
|
|
866
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle auto RAM limit calculation" accessibilityState={{ checked: isAutoRamLimitEnabled }} onPress={() => setIsAutoRamLimitEnabled(prev => !prev)} style={{
|
|
789
867
|
width: 42,
|
|
790
868
|
height: 24,
|
|
791
869
|
borderRadius: 12,
|
|
@@ -794,9 +872,11 @@ const SettingsPanel = () => {
|
|
|
794
872
|
: AppColors_1.AppColors.grayBorderSecondary,
|
|
795
873
|
padding: 2,
|
|
796
874
|
justifyContent: 'center',
|
|
797
|
-
alignItems: isAutoRamLimitEnabled
|
|
875
|
+
alignItems: isAutoRamLimitEnabled
|
|
876
|
+
? 'flex-end'
|
|
877
|
+
: 'flex-start',
|
|
798
878
|
}}>
|
|
799
|
-
|
|
879
|
+
<react_native_1.View style={{
|
|
800
880
|
width: 20,
|
|
801
881
|
height: 20,
|
|
802
882
|
borderRadius: 10,
|
|
@@ -806,14 +886,14 @@ const SettingsPanel = () => {
|
|
|
806
886
|
shadowRadius: 2,
|
|
807
887
|
shadowOffset: { width: 0, height: 1 },
|
|
808
888
|
}}/>
|
|
809
|
-
|
|
810
|
-
|
|
889
|
+
</TouchableScale_1.default>
|
|
890
|
+
</react_native_1.View>
|
|
811
891
|
|
|
812
|
-
|
|
892
|
+
<react_native_1.View style={{ height: 1, backgroundColor: AppColors_1.AppColors.dividerColor }}/>
|
|
813
893
|
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
894
|
+
{/* Device Free RAM Display */}
|
|
895
|
+
<react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 10 }}>
|
|
896
|
+
<react_native_1.View style={{
|
|
817
897
|
width: 32,
|
|
818
898
|
height: 32,
|
|
819
899
|
borderRadius: 8,
|
|
@@ -823,10 +903,12 @@ const SettingsPanel = () => {
|
|
|
823
903
|
alignItems: 'center',
|
|
824
904
|
justifyContent: 'center',
|
|
825
905
|
}}>
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
906
|
+
<NetworkIcons_1.SignalIcon color={isAutoRamLimitEnabled
|
|
907
|
+
? AppColors_1.AppColors.purple
|
|
908
|
+
: AppColors_1.AppColors.grayTextWeak} size={15}/>
|
|
909
|
+
</react_native_1.View>
|
|
910
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
911
|
+
<react_native_1.Text style={{
|
|
830
912
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
831
913
|
fontSize: 13.5,
|
|
832
914
|
lineHeight: 18,
|
|
@@ -834,19 +916,19 @@ const SettingsPanel = () => {
|
|
|
834
916
|
? AppColors_1.AppColors.primaryBlack
|
|
835
917
|
: AppColors_1.AppColors.grayText,
|
|
836
918
|
}}>
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
919
|
+
Detected Free RAM
|
|
920
|
+
</react_native_1.Text>
|
|
921
|
+
<react_native_1.Text style={{
|
|
840
922
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
841
923
|
fontSize: 11,
|
|
842
924
|
lineHeight: 15,
|
|
843
925
|
color: AppColors_1.AppColors.grayText,
|
|
844
926
|
marginTop: 1,
|
|
845
927
|
}}>
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
928
|
+
{deviceFreeRamMb} MB available
|
|
929
|
+
</react_native_1.Text>
|
|
930
|
+
</react_native_1.View>
|
|
931
|
+
<react_native_1.View style={{
|
|
850
932
|
paddingHorizontal: 10,
|
|
851
933
|
paddingVertical: 5,
|
|
852
934
|
borderRadius: 8,
|
|
@@ -858,7 +940,7 @@ const SettingsPanel = () => {
|
|
|
858
940
|
? `${AppColors_1.AppColors.purple}26`
|
|
859
941
|
: AppColors_1.AppColors.dividerColor,
|
|
860
942
|
}}>
|
|
861
|
-
|
|
943
|
+
<react_native_1.Text style={{
|
|
862
944
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
863
945
|
fontSize: 12,
|
|
864
946
|
lineHeight: 15,
|
|
@@ -866,27 +948,49 @@ const SettingsPanel = () => {
|
|
|
866
948
|
? AppColors_1.AppColors.purple
|
|
867
949
|
: AppColors_1.AppColors.grayText,
|
|
868
950
|
}}>
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
</react_native_1.View>
|
|
951
|
+
{deviceFreeRamMb} MB
|
|
952
|
+
</react_native_1.Text>
|
|
872
953
|
</react_native_1.View>
|
|
954
|
+
</react_native_1.View>
|
|
873
955
|
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
956
|
+
{/* Current Auto-Calculated Limits Preview */}
|
|
957
|
+
{isAutoRamLimitEnabled && (<react_native_1.View style={{
|
|
958
|
+
marginTop: 8,
|
|
959
|
+
paddingTop: 8,
|
|
960
|
+
borderTopWidth: 1,
|
|
961
|
+
borderTopColor: AppColors_1.AppColors.dividerColor,
|
|
962
|
+
gap: 6,
|
|
963
|
+
}}>
|
|
964
|
+
<react_native_1.Text style={{
|
|
877
965
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
878
966
|
fontSize: 11.5,
|
|
879
967
|
lineHeight: 15,
|
|
880
968
|
color: AppColors_1.AppColors.purple,
|
|
881
969
|
}}>
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
{
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
970
|
+
Auto Profile: {autoRamProfile.profileName}
|
|
971
|
+
</react_native_1.Text>
|
|
972
|
+
<react_native_1.View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
|
|
973
|
+
{[
|
|
974
|
+
{
|
|
975
|
+
label: 'APIs',
|
|
976
|
+
value: autoRamProfile.maxNetworkLogs,
|
|
977
|
+
color: AppColors_1.AppColors.blue500,
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
label: 'Logs',
|
|
981
|
+
value: autoRamProfile.maxConsoleLogs,
|
|
982
|
+
color: AppColors_1.AppColors.sky500,
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
label: 'Analytics',
|
|
986
|
+
value: autoRamProfile.maxAnalyticsEvents,
|
|
987
|
+
color: AppColors_1.AppColors.purple,
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
label: 'Crash',
|
|
991
|
+
value: autoRamProfile.maxCrashRecords,
|
|
992
|
+
color: AppColors_1.AppColors.errorColor,
|
|
993
|
+
},
|
|
890
994
|
].map(item => (<react_native_1.View key={item.label} style={{
|
|
891
995
|
flexDirection: 'row',
|
|
892
996
|
alignItems: 'center',
|
|
@@ -898,29 +1002,63 @@ const SettingsPanel = () => {
|
|
|
898
1002
|
borderWidth: 1,
|
|
899
1003
|
borderColor: `${item.color}33`,
|
|
900
1004
|
}}>
|
|
901
|
-
|
|
1005
|
+
<react_native_1.Text style={{
|
|
902
1006
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
903
1007
|
fontSize: 10.5,
|
|
904
1008
|
lineHeight: 14,
|
|
905
1009
|
color: item.color,
|
|
906
1010
|
}}>
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
1011
|
+
{item.label}
|
|
1012
|
+
</react_native_1.Text>
|
|
1013
|
+
<react_native_1.Text style={{
|
|
910
1014
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
911
1015
|
fontSize: 10.5,
|
|
912
1016
|
lineHeight: 14,
|
|
913
1017
|
color: item.color,
|
|
914
1018
|
}}>
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
1019
|
+
{item.value}
|
|
1020
|
+
</react_native_1.Text>
|
|
1021
|
+
</react_native_1.View>))}
|
|
1022
|
+
</react_native_1.View>
|
|
1023
|
+
</react_native_1.View>)}
|
|
1024
|
+
|
|
1025
|
+
<react_native_1.View style={{ height: 1, backgroundColor: AppColors_1.AppColors.dividerColor }}/>
|
|
1026
|
+
|
|
1027
|
+
{/* Floating Mini Performance HUD Toggle */}
|
|
1028
|
+
{renderSettingRow({
|
|
1029
|
+
icon: <NetworkIcons_1.PerformanceIcon color={AppColors_1.AppColors.purple} size={16}/>,
|
|
1030
|
+
label: 'Show Mini Performance HUD Overlay',
|
|
1031
|
+
description: 'Floating on-screen real-time FPS and Memory/Heap widget',
|
|
1032
|
+
right: (<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle mini performance HUD overlay" accessibilityState={{ checked: isPerformanceHudEnabled }} onPress={() => setIsPerformanceHudEnabled(prev => !prev)} style={{
|
|
1033
|
+
width: 42,
|
|
1034
|
+
height: 24,
|
|
1035
|
+
borderRadius: 12,
|
|
1036
|
+
backgroundColor: isPerformanceHudEnabled
|
|
1037
|
+
? AppColors_1.AppColors.purple
|
|
1038
|
+
: AppColors_1.AppColors.grayBorderSecondary,
|
|
1039
|
+
padding: 2,
|
|
1040
|
+
justifyContent: 'center',
|
|
1041
|
+
alignItems: isPerformanceHudEnabled
|
|
1042
|
+
? 'flex-end'
|
|
1043
|
+
: 'flex-start',
|
|
1044
|
+
}}>
|
|
1045
|
+
<react_native_1.View style={{
|
|
1046
|
+
width: 20,
|
|
1047
|
+
height: 20,
|
|
1048
|
+
borderRadius: 10,
|
|
1049
|
+
backgroundColor: AppColors_1.AppColors.white,
|
|
1050
|
+
shadowColor: AppColors_1.AppColors.black,
|
|
1051
|
+
shadowOpacity: 0.18,
|
|
1052
|
+
shadowRadius: 2,
|
|
1053
|
+
shadowOffset: { width: 0, height: 1 },
|
|
1054
|
+
}}/>
|
|
1055
|
+
</TouchableScale_1.default>),
|
|
1056
|
+
isLast: true,
|
|
1057
|
+
})}
|
|
1058
|
+
</react_native_1.View>
|
|
1059
|
+
|
|
1060
|
+
{/* Section 2: Fine-Tuned Resource Limits */}
|
|
1061
|
+
<react_native_1.View style={{
|
|
924
1062
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
925
1063
|
borderRadius: 14,
|
|
926
1064
|
borderWidth: 1,
|
|
@@ -929,28 +1067,233 @@ const SettingsPanel = () => {
|
|
|
929
1067
|
padding: 14,
|
|
930
1068
|
gap: 12,
|
|
931
1069
|
}}>
|
|
932
|
-
|
|
1070
|
+
<react_native_1.Text style={{
|
|
933
1071
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
934
1072
|
fontSize: 11,
|
|
935
1073
|
lineHeight: 14,
|
|
936
1074
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
937
1075
|
letterSpacing: 0.8,
|
|
938
1076
|
}}>
|
|
939
|
-
|
|
940
|
-
|
|
1077
|
+
MANUAL RESOURCE THRESHOLDS
|
|
1078
|
+
</react_native_1.Text>
|
|
941
1079
|
|
|
942
|
-
|
|
1080
|
+
{renderSettingRow({
|
|
1081
|
+
icon: <NetworkIcons_1.SignalIcon color={AppColors_1.AppColors.purple} size={16}/>,
|
|
1082
|
+
label: 'Max Network / API Logs',
|
|
1083
|
+
description: 'Maximum in-memory API requests tracked before rotation',
|
|
1084
|
+
numericInput: {
|
|
1085
|
+
value: maxNetworkLogs,
|
|
1086
|
+
onChange: setMaxNetworkLogs,
|
|
1087
|
+
min: 10,
|
|
1088
|
+
max: 100,
|
|
1089
|
+
placeholder: '10 - 100',
|
|
1090
|
+
},
|
|
1091
|
+
})}
|
|
1092
|
+
|
|
1093
|
+
{renderSettingRow({
|
|
1094
|
+
icon: <NetworkIcons_1.TerminalIcon color={AppColors_1.AppColors.purple} size={16}/>,
|
|
1095
|
+
label: 'Max Console Logs',
|
|
1096
|
+
description: 'Maximum log entries kept across info/warn/error streams',
|
|
1097
|
+
numericInput: {
|
|
1098
|
+
value: maxConsoleLogs,
|
|
1099
|
+
onChange: setMaxConsoleLogs,
|
|
1100
|
+
min: 20,
|
|
1101
|
+
max: 300,
|
|
1102
|
+
placeholder: '20 - 300',
|
|
1103
|
+
},
|
|
1104
|
+
})}
|
|
1105
|
+
|
|
1106
|
+
{renderSettingRow({
|
|
1107
|
+
icon: <NetworkIcons_1.AnalyticsIcon color={AppColors_1.AppColors.purple} size={16}/>,
|
|
1108
|
+
label: 'Max Analytics Events',
|
|
1109
|
+
description: 'Capacity for captured analytics payloads & telemetry pings',
|
|
1110
|
+
numericInput: {
|
|
1111
|
+
value: maxAnalyticsEventsLimit,
|
|
1112
|
+
onChange: setMaxAnalyticsEventsLimit,
|
|
1113
|
+
min: 20,
|
|
1114
|
+
max: 200,
|
|
1115
|
+
placeholder: '20 - 200',
|
|
1116
|
+
},
|
|
1117
|
+
})}
|
|
1118
|
+
|
|
1119
|
+
{renderSettingRow({
|
|
1120
|
+
icon: <NetworkIcons_1.CrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1121
|
+
label: 'Max Crash Records',
|
|
1122
|
+
description: 'Stored fatal exceptions and crash diagnostics logs',
|
|
1123
|
+
numericInput: {
|
|
1124
|
+
value: maxCrashLogs,
|
|
1125
|
+
onChange: setMaxCrashLogs,
|
|
1126
|
+
min: 5,
|
|
1127
|
+
max: 50,
|
|
1128
|
+
placeholder: '5 - 50',
|
|
1129
|
+
},
|
|
1130
|
+
isLast: true,
|
|
1131
|
+
})}
|
|
1132
|
+
</react_native_1.View>
|
|
1133
|
+
|
|
1134
|
+
{/* Section 3: Storage & Cache Cleansing */}
|
|
1135
|
+
<react_native_1.View style={{
|
|
1136
|
+
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1137
|
+
borderRadius: 14,
|
|
1138
|
+
borderWidth: 1,
|
|
1139
|
+
borderColor: AppColors_1.AppColors.grayBorderSecondary,
|
|
1140
|
+
overflow: 'hidden',
|
|
1141
|
+
padding: 14,
|
|
1142
|
+
gap: 12,
|
|
1143
|
+
}}>
|
|
1144
|
+
<react_native_1.Text style={{
|
|
1145
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1146
|
+
fontSize: 11,
|
|
1147
|
+
lineHeight: 14,
|
|
1148
|
+
color: AppColors_1.AppColors.grayTextWeak,
|
|
1149
|
+
letterSpacing: 0.8,
|
|
1150
|
+
}}>
|
|
1151
|
+
STORAGE & CACHE CLEANSING
|
|
1152
|
+
</react_native_1.Text>
|
|
1153
|
+
|
|
1154
|
+
{renderSettingRow({
|
|
1155
|
+
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1156
|
+
label: 'Clear All Network Logs',
|
|
1157
|
+
description: `${logs.length} requests in memory`,
|
|
1158
|
+
onPress: () => {
|
|
1159
|
+
(0, networkLogger_1.clearNetworkLogs)();
|
|
1160
|
+
setSelected(null);
|
|
1161
|
+
react_native_1.Alert.alert(t('common.success'), 'Network logs cleared successfully.');
|
|
1162
|
+
},
|
|
1163
|
+
right: (<react_native_1.View style={{
|
|
1164
|
+
paddingHorizontal: 10,
|
|
1165
|
+
paddingVertical: 4,
|
|
1166
|
+
borderRadius: 6,
|
|
1167
|
+
backgroundColor: `${AppColors_1.AppColors.errorColor}14`,
|
|
1168
|
+
borderWidth: 1,
|
|
1169
|
+
borderColor: `${AppColors_1.AppColors.errorColor}33`,
|
|
1170
|
+
}}>
|
|
1171
|
+
<react_native_1.Text style={{
|
|
1172
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1173
|
+
fontSize: 11,
|
|
1174
|
+
color: AppColors_1.AppColors.errorColor,
|
|
1175
|
+
}}>
|
|
1176
|
+
Clear ({logs.length})
|
|
1177
|
+
</react_native_1.Text>
|
|
1178
|
+
</react_native_1.View>),
|
|
1179
|
+
})}
|
|
1180
|
+
|
|
1181
|
+
{renderSettingRow({
|
|
1182
|
+
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1183
|
+
label: 'Clear All Console Logs',
|
|
1184
|
+
description: `${consoleLogs.length} logs in memory`,
|
|
1185
|
+
onPress: () => {
|
|
1186
|
+
(0, consoleLogger_1.clearConsoleLogs)();
|
|
1187
|
+
react_native_1.Alert.alert(t('common.success'), 'Console logs cleared successfully.');
|
|
1188
|
+
},
|
|
1189
|
+
right: (<react_native_1.View style={{
|
|
1190
|
+
paddingHorizontal: 10,
|
|
1191
|
+
paddingVertical: 4,
|
|
1192
|
+
borderRadius: 6,
|
|
1193
|
+
backgroundColor: `${AppColors_1.AppColors.errorColor}14`,
|
|
1194
|
+
borderWidth: 1,
|
|
1195
|
+
borderColor: `${AppColors_1.AppColors.errorColor}33`,
|
|
1196
|
+
}}>
|
|
1197
|
+
<react_native_1.Text style={{
|
|
1198
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1199
|
+
fontSize: 11,
|
|
1200
|
+
color: AppColors_1.AppColors.errorColor,
|
|
1201
|
+
}}>
|
|
1202
|
+
Clear ({consoleLogs.length})
|
|
1203
|
+
</react_native_1.Text>
|
|
1204
|
+
</react_native_1.View>),
|
|
1205
|
+
})}
|
|
1206
|
+
|
|
1207
|
+
{renderSettingRow({
|
|
1208
|
+
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1209
|
+
label: 'Clear Analytics Events',
|
|
1210
|
+
description: `${analyticsEvents.length} events recorded`,
|
|
1211
|
+
onPress: () => {
|
|
1212
|
+
(0, analyticsLogger_1.clearAnalyticsEvents)();
|
|
1213
|
+
setSelectedEvent(null);
|
|
1214
|
+
react_native_1.Alert.alert(t('common.success'), 'Analytics events cleared successfully.');
|
|
1215
|
+
},
|
|
1216
|
+
right: (<react_native_1.View style={{
|
|
1217
|
+
paddingHorizontal: 10,
|
|
1218
|
+
paddingVertical: 4,
|
|
1219
|
+
borderRadius: 6,
|
|
1220
|
+
backgroundColor: `${AppColors_1.AppColors.errorColor}14`,
|
|
1221
|
+
borderWidth: 1,
|
|
1222
|
+
borderColor: `${AppColors_1.AppColors.errorColor}33`,
|
|
1223
|
+
}}>
|
|
1224
|
+
<react_native_1.Text style={{
|
|
1225
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1226
|
+
fontSize: 11,
|
|
1227
|
+
color: AppColors_1.AppColors.errorColor,
|
|
1228
|
+
}}>
|
|
1229
|
+
Clear ({analyticsEvents.length})
|
|
1230
|
+
</react_native_1.Text>
|
|
1231
|
+
</react_native_1.View>),
|
|
1232
|
+
})}
|
|
1233
|
+
|
|
1234
|
+
{renderSettingRow({
|
|
1235
|
+
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1236
|
+
label: 'Clear Crash Logs',
|
|
1237
|
+
description: `${crashRecords.length} crash dumps recorded`,
|
|
1238
|
+
onPress: () => {
|
|
1239
|
+
(0, crashHandler_1.clearCrashRecords)();
|
|
1240
|
+
react_native_1.Alert.alert(t('common.success'), 'Crash records cleared successfully.');
|
|
1241
|
+
},
|
|
1242
|
+
isLast: true,
|
|
1243
|
+
right: (<react_native_1.View style={{
|
|
1244
|
+
paddingHorizontal: 10,
|
|
1245
|
+
paddingVertical: 4,
|
|
1246
|
+
borderRadius: 6,
|
|
1247
|
+
backgroundColor: `${AppColors_1.AppColors.errorColor}14`,
|
|
1248
|
+
borderWidth: 1,
|
|
1249
|
+
borderColor: `${AppColors_1.AppColors.errorColor}33`,
|
|
1250
|
+
}}>
|
|
1251
|
+
<react_native_1.Text style={{
|
|
1252
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1253
|
+
fontSize: 11,
|
|
1254
|
+
color: AppColors_1.AppColors.errorColor,
|
|
1255
|
+
}}>
|
|
1256
|
+
Clear ({crashRecords.length})
|
|
1257
|
+
</react_native_1.Text>
|
|
1258
|
+
</react_native_1.View>),
|
|
1259
|
+
})}
|
|
1260
|
+
</react_native_1.View>
|
|
1261
|
+
</react_native_1.View>)}
|
|
1262
|
+
|
|
1263
|
+
{/* ─── TAB 3: UI & APPEARANCE ────────────────────────────────────────── */}
|
|
1264
|
+
{settingsActiveSubTab === 'ui' && (<react_native_1.View style={{ gap: 14 }}>
|
|
1265
|
+
{/* Section 1: Appearance */}
|
|
1266
|
+
<react_native_1.View style={{
|
|
1267
|
+
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1268
|
+
borderRadius: 14,
|
|
1269
|
+
borderWidth: 1,
|
|
1270
|
+
borderColor: AppColors_1.AppColors.grayBorderSecondary,
|
|
1271
|
+
overflow: 'hidden',
|
|
1272
|
+
padding: 14,
|
|
1273
|
+
gap: 12,
|
|
1274
|
+
}}>
|
|
1275
|
+
<react_native_1.Text style={{
|
|
1276
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1277
|
+
fontSize: 11,
|
|
1278
|
+
lineHeight: 14,
|
|
1279
|
+
color: AppColors_1.AppColors.grayTextWeak,
|
|
1280
|
+
letterSpacing: 0.8,
|
|
1281
|
+
}}>
|
|
1282
|
+
{t('settings.appearanceTheme')}
|
|
1283
|
+
</react_native_1.Text>
|
|
1284
|
+
|
|
1285
|
+
<react_native_1.View style={{
|
|
943
1286
|
flexDirection: 'row',
|
|
944
1287
|
alignItems: 'center',
|
|
945
1288
|
justifyContent: 'space-between',
|
|
946
1289
|
}}>
|
|
947
|
-
|
|
1290
|
+
<react_native_1.View style={{
|
|
948
1291
|
flexDirection: 'row',
|
|
949
1292
|
alignItems: 'center',
|
|
950
1293
|
gap: 10,
|
|
951
1294
|
flex: 1,
|
|
952
1295
|
}}>
|
|
953
|
-
|
|
1296
|
+
<react_native_1.View style={{
|
|
954
1297
|
width: 32,
|
|
955
1298
|
height: 32,
|
|
956
1299
|
borderRadius: 8,
|
|
@@ -958,30 +1301,30 @@ const SettingsPanel = () => {
|
|
|
958
1301
|
alignItems: 'center',
|
|
959
1302
|
justifyContent: 'center',
|
|
960
1303
|
}}>
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
1304
|
+
{isDark ? (<NetworkIcons_1.SunIcon color={AppColors_1.AppColors.purple} size={15}/>) : (<NetworkIcons_1.MoonIcon color={AppColors_1.AppColors.purple} size={15}/>)}
|
|
1305
|
+
</react_native_1.View>
|
|
1306
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1307
|
+
<react_native_1.Text style={{
|
|
965
1308
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
966
1309
|
fontSize: 13.5,
|
|
967
1310
|
lineHeight: 18,
|
|
968
1311
|
color: AppColors_1.AppColors.primaryBlack,
|
|
969
1312
|
}}>
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
1313
|
+
{t('settings.general.darkMode')}
|
|
1314
|
+
</react_native_1.Text>
|
|
1315
|
+
<react_native_1.Text style={{
|
|
973
1316
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
974
1317
|
fontSize: 11,
|
|
975
1318
|
lineHeight: 15,
|
|
976
1319
|
color: AppColors_1.AppColors.grayText,
|
|
977
1320
|
marginTop: 1,
|
|
978
1321
|
}}>
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
</react_native_1.View>
|
|
1322
|
+
{t('settings.general.darkModeDescription')}
|
|
1323
|
+
</react_native_1.Text>
|
|
982
1324
|
</react_native_1.View>
|
|
1325
|
+
</react_native_1.View>
|
|
983
1326
|
|
|
984
|
-
|
|
1327
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle Dark Theme" accessibilityState={{ checked: isDark }} onPress={() => {
|
|
985
1328
|
const newTheme = !isDark;
|
|
986
1329
|
setIsDark(newTheme);
|
|
987
1330
|
(0, styles_1.toggleGlobalTheme)(newTheme);
|
|
@@ -996,7 +1339,7 @@ const SettingsPanel = () => {
|
|
|
996
1339
|
justifyContent: 'center',
|
|
997
1340
|
alignItems: isDark ? 'flex-end' : 'flex-start',
|
|
998
1341
|
}}>
|
|
999
|
-
|
|
1342
|
+
<react_native_1.View style={{
|
|
1000
1343
|
width: 20,
|
|
1001
1344
|
height: 20,
|
|
1002
1345
|
borderRadius: 10,
|
|
@@ -1006,12 +1349,12 @@ const SettingsPanel = () => {
|
|
|
1006
1349
|
shadowRadius: 2,
|
|
1007
1350
|
shadowOffset: { width: 0, height: 1 },
|
|
1008
1351
|
}}/>
|
|
1009
|
-
|
|
1010
|
-
</react_native_1.View>
|
|
1352
|
+
</TouchableScale_1.default>
|
|
1011
1353
|
</react_native_1.View>
|
|
1354
|
+
</react_native_1.View>
|
|
1012
1355
|
|
|
1013
|
-
|
|
1014
|
-
|
|
1356
|
+
{/* Section 2: Window & Layout */}
|
|
1357
|
+
<react_native_1.View style={{
|
|
1015
1358
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1016
1359
|
borderRadius: 14,
|
|
1017
1360
|
borderWidth: 1,
|
|
@@ -1020,31 +1363,31 @@ const SettingsPanel = () => {
|
|
|
1020
1363
|
padding: 14,
|
|
1021
1364
|
gap: 14,
|
|
1022
1365
|
}}>
|
|
1023
|
-
|
|
1366
|
+
<react_native_1.Text style={{
|
|
1024
1367
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1025
1368
|
fontSize: 11,
|
|
1026
1369
|
lineHeight: 14,
|
|
1027
1370
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
1028
1371
|
letterSpacing: 0.8,
|
|
1029
1372
|
}}>
|
|
1030
|
-
|
|
1031
|
-
|
|
1373
|
+
{t('settings.windowLayout')}
|
|
1374
|
+
</react_native_1.Text>
|
|
1032
1375
|
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1376
|
+
{/* Modal Height */}
|
|
1377
|
+
<react_native_1.View style={{ gap: 8 }}>
|
|
1378
|
+
<react_native_1.View style={{
|
|
1036
1379
|
flexDirection: 'row',
|
|
1037
1380
|
alignItems: 'center',
|
|
1038
1381
|
justifyContent: 'space-between',
|
|
1039
1382
|
gap: 10,
|
|
1040
1383
|
}}>
|
|
1041
|
-
|
|
1384
|
+
<react_native_1.View style={{
|
|
1042
1385
|
flexDirection: 'row',
|
|
1043
1386
|
alignItems: 'center',
|
|
1044
1387
|
gap: 10,
|
|
1045
1388
|
flex: 1,
|
|
1046
1389
|
}}>
|
|
1047
|
-
|
|
1390
|
+
<react_native_1.View style={{
|
|
1048
1391
|
width: 32,
|
|
1049
1392
|
height: 32,
|
|
1050
1393
|
borderRadius: 8,
|
|
@@ -1052,30 +1395,30 @@ const SettingsPanel = () => {
|
|
|
1052
1395
|
alignItems: 'center',
|
|
1053
1396
|
justifyContent: 'center',
|
|
1054
1397
|
}}>
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1398
|
+
<NetworkIcons_1.ScreenIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1399
|
+
</react_native_1.View>
|
|
1400
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1401
|
+
<react_native_1.Text style={{
|
|
1059
1402
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1060
1403
|
fontSize: 13.5,
|
|
1061
1404
|
lineHeight: 18,
|
|
1062
1405
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1063
1406
|
}}>
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1407
|
+
{t('settings.general.modalHeight')}
|
|
1408
|
+
</react_native_1.Text>
|
|
1409
|
+
<react_native_1.Text style={{
|
|
1067
1410
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1068
1411
|
fontSize: 11,
|
|
1069
1412
|
lineHeight: 15,
|
|
1070
1413
|
color: AppColors_1.AppColors.grayText,
|
|
1071
1414
|
marginTop: 1,
|
|
1072
1415
|
}}>
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
</react_native_1.View>
|
|
1416
|
+
{t('settings.general.modalHeightDescription')}
|
|
1417
|
+
</react_native_1.Text>
|
|
1076
1418
|
</react_native_1.View>
|
|
1419
|
+
</react_native_1.View>
|
|
1077
1420
|
|
|
1078
|
-
|
|
1421
|
+
{stagedHeight !== modalHeightPercent && (<TouchableScale_1.default onPress={() => {
|
|
1079
1422
|
setModalHeightPercent(stagedHeight);
|
|
1080
1423
|
}} style={{
|
|
1081
1424
|
flexDirection: 'row',
|
|
@@ -1091,32 +1434,32 @@ const SettingsPanel = () => {
|
|
|
1091
1434
|
shadowRadius: 2,
|
|
1092
1435
|
elevation: 2,
|
|
1093
1436
|
}}>
|
|
1094
|
-
|
|
1095
|
-
|
|
1437
|
+
<NetworkIcons_1.CheckIcon size={11} color={AppColors_1.AppColors.white}/>
|
|
1438
|
+
<react_native_1.Text style={{
|
|
1096
1439
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1097
1440
|
fontSize: 11,
|
|
1098
1441
|
color: AppColors_1.AppColors.white,
|
|
1099
|
-
}}>
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1442
|
+
}}>
|
|
1443
|
+
Save ({stagedHeight}%)
|
|
1444
|
+
</react_native_1.Text>
|
|
1445
|
+
</TouchableScale_1.default>)}
|
|
1446
|
+
</react_native_1.View>
|
|
1104
1447
|
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
</react_native_1.View>
|
|
1448
|
+
<react_native_1.View style={{ marginTop: 6 }}>
|
|
1449
|
+
<Slider_1.default value={stagedHeight} onValueChange={setStagedHeight} min={50} max={90} step={5} quickPresets={[50, 60, 70, 80, 90]} formatLabel={val => `${Math.round(val)}%`}/>
|
|
1108
1450
|
</react_native_1.View>
|
|
1451
|
+
</react_native_1.View>
|
|
1109
1452
|
|
|
1110
|
-
|
|
1453
|
+
<react_native_1.View style={{ height: 1, backgroundColor: AppColors_1.AppColors.dividerColor }}/>
|
|
1111
1454
|
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1455
|
+
{/* Modal Animation */}
|
|
1456
|
+
<react_native_1.View style={{ gap: 8 }}>
|
|
1457
|
+
<react_native_1.View style={{
|
|
1115
1458
|
flexDirection: 'row',
|
|
1116
1459
|
alignItems: 'center',
|
|
1117
1460
|
gap: 10,
|
|
1118
1461
|
}}>
|
|
1119
|
-
|
|
1462
|
+
<react_native_1.View style={{
|
|
1120
1463
|
width: 32,
|
|
1121
1464
|
height: 32,
|
|
1122
1465
|
borderRadius: 8,
|
|
@@ -1124,30 +1467,30 @@ const SettingsPanel = () => {
|
|
|
1124
1467
|
alignItems: 'center',
|
|
1125
1468
|
justifyContent: 'center',
|
|
1126
1469
|
}}>
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1470
|
+
<NetworkIcons_1.MotionIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1471
|
+
</react_native_1.View>
|
|
1472
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1473
|
+
<react_native_1.Text style={{
|
|
1131
1474
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1132
1475
|
fontSize: 13.5,
|
|
1133
1476
|
lineHeight: 18,
|
|
1134
1477
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1135
1478
|
}}>
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1479
|
+
{t('settings.general.modalAnimation')}
|
|
1480
|
+
</react_native_1.Text>
|
|
1481
|
+
<react_native_1.Text style={{
|
|
1139
1482
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1140
1483
|
fontSize: 11,
|
|
1141
1484
|
lineHeight: 15,
|
|
1142
1485
|
color: AppColors_1.AppColors.grayText,
|
|
1143
1486
|
marginTop: 1,
|
|
1144
1487
|
}}>
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
</react_native_1.View>
|
|
1488
|
+
{t('settings.general.modalAnimationDescription')}
|
|
1489
|
+
</react_native_1.Text>
|
|
1148
1490
|
</react_native_1.View>
|
|
1491
|
+
</react_native_1.View>
|
|
1149
1492
|
|
|
1150
|
-
|
|
1493
|
+
<react_native_1.View style={{
|
|
1151
1494
|
flexDirection: 'row',
|
|
1152
1495
|
backgroundColor: AppColors_1.AppColors.grayBackground,
|
|
1153
1496
|
borderRadius: 10,
|
|
@@ -1155,7 +1498,7 @@ const SettingsPanel = () => {
|
|
|
1155
1498
|
borderWidth: 1,
|
|
1156
1499
|
borderColor: AppColors_1.AppColors.dividerColor,
|
|
1157
1500
|
}}>
|
|
1158
|
-
|
|
1501
|
+
{[
|
|
1159
1502
|
{ key: 'slide', label: 'Slide Up' },
|
|
1160
1503
|
{ key: 'fade', label: 'Fade' },
|
|
1161
1504
|
{ key: 'none', label: 'None' },
|
|
@@ -1170,7 +1513,7 @@ const SettingsPanel = () => {
|
|
|
1170
1513
|
? AppColors_1.AppColors.purple
|
|
1171
1514
|
: 'transparent',
|
|
1172
1515
|
}}>
|
|
1173
|
-
|
|
1516
|
+
<react_native_1.Text style={{
|
|
1174
1517
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1175
1518
|
fontSize: 11.5,
|
|
1176
1519
|
lineHeight: 15,
|
|
@@ -1178,16 +1521,16 @@ const SettingsPanel = () => {
|
|
|
1178
1521
|
? AppColors_1.AppColors.white
|
|
1179
1522
|
: AppColors_1.AppColors.grayText,
|
|
1180
1523
|
}}>
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1524
|
+
{opt.label}
|
|
1525
|
+
</react_native_1.Text>
|
|
1526
|
+
</TouchableScale_1.default>);
|
|
1184
1527
|
})}
|
|
1185
|
-
</react_native_1.View>
|
|
1186
1528
|
</react_native_1.View>
|
|
1187
1529
|
</react_native_1.View>
|
|
1530
|
+
</react_native_1.View>
|
|
1188
1531
|
|
|
1189
|
-
|
|
1190
|
-
|
|
1532
|
+
{/* Section 3: Default Startup Tab */}
|
|
1533
|
+
<react_native_1.View style={{
|
|
1191
1534
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1192
1535
|
borderRadius: 14,
|
|
1193
1536
|
borderWidth: 1,
|
|
@@ -1196,22 +1539,22 @@ const SettingsPanel = () => {
|
|
|
1196
1539
|
padding: 14,
|
|
1197
1540
|
gap: 12,
|
|
1198
1541
|
}}>
|
|
1199
|
-
|
|
1542
|
+
<react_native_1.Text style={{
|
|
1200
1543
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1201
1544
|
fontSize: 11,
|
|
1202
1545
|
lineHeight: 14,
|
|
1203
1546
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
1204
1547
|
letterSpacing: 0.8,
|
|
1205
1548
|
}}>
|
|
1206
|
-
|
|
1207
|
-
|
|
1549
|
+
{t('settings.startupDefault')}
|
|
1550
|
+
</react_native_1.Text>
|
|
1208
1551
|
|
|
1209
|
-
|
|
1552
|
+
<react_native_1.View style={{
|
|
1210
1553
|
flexDirection: 'row',
|
|
1211
1554
|
alignItems: 'center',
|
|
1212
1555
|
gap: 10,
|
|
1213
1556
|
}}>
|
|
1214
|
-
|
|
1557
|
+
<react_native_1.View style={{
|
|
1215
1558
|
width: 32,
|
|
1216
1559
|
height: 32,
|
|
1217
1560
|
borderRadius: 8,
|
|
@@ -1219,32 +1562,32 @@ const SettingsPanel = () => {
|
|
|
1219
1562
|
alignItems: 'center',
|
|
1220
1563
|
justifyContent: 'center',
|
|
1221
1564
|
}}>
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1565
|
+
<NetworkIcons_1.LayersIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1566
|
+
</react_native_1.View>
|
|
1567
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1568
|
+
<react_native_1.Text style={{
|
|
1226
1569
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1227
1570
|
fontSize: 13.5,
|
|
1228
1571
|
lineHeight: 18,
|
|
1229
1572
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1230
1573
|
}}>
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1574
|
+
{t('settings.general.defaultOpeningTab')}
|
|
1575
|
+
</react_native_1.Text>
|
|
1576
|
+
<react_native_1.Text style={{
|
|
1234
1577
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1235
1578
|
fontSize: 11,
|
|
1236
1579
|
lineHeight: 15,
|
|
1237
1580
|
color: AppColors_1.AppColors.grayText,
|
|
1238
1581
|
marginTop: 1,
|
|
1239
1582
|
}}>
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
</react_native_1.View>
|
|
1583
|
+
{t('settings.general.defaultOpeningTabDesc')}
|
|
1584
|
+
</react_native_1.Text>
|
|
1243
1585
|
</react_native_1.View>
|
|
1586
|
+
</react_native_1.View>
|
|
1244
1587
|
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1588
|
+
{/* Sleek Interactive Dropdown Picker */}
|
|
1589
|
+
<react_native_1.View style={{ marginTop: 6, gap: 6 }}>
|
|
1590
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel={`Default opening tab: ${allModules.find(m => m.key === defaultTab)?.label || 'APIs'}`} onPress={() => setIsDefaultTabDropdownOpen(prev => !prev)} style={{
|
|
1248
1591
|
flexDirection: 'row',
|
|
1249
1592
|
alignItems: 'center',
|
|
1250
1593
|
justifyContent: 'space-between',
|
|
@@ -1257,53 +1600,54 @@ const SettingsPanel = () => {
|
|
|
1257
1600
|
paddingHorizontal: 14,
|
|
1258
1601
|
paddingVertical: 11,
|
|
1259
1602
|
}}>
|
|
1260
|
-
|
|
1603
|
+
<react_native_1.View style={{
|
|
1261
1604
|
flexDirection: 'row',
|
|
1262
1605
|
alignItems: 'center',
|
|
1263
1606
|
gap: 10,
|
|
1264
1607
|
flex: 1,
|
|
1265
1608
|
}}>
|
|
1266
|
-
|
|
1609
|
+
<react_native_1.View style={{
|
|
1267
1610
|
width: 8,
|
|
1268
1611
|
height: 8,
|
|
1269
1612
|
borderRadius: 4,
|
|
1270
1613
|
backgroundColor: AppColors_1.AppColors.purple,
|
|
1271
1614
|
}}/>
|
|
1272
|
-
|
|
1615
|
+
<react_native_1.Text style={{
|
|
1273
1616
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1274
1617
|
fontSize: 13.5,
|
|
1275
1618
|
lineHeight: 18,
|
|
1276
1619
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1277
1620
|
}}>
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1621
|
+
{allModules.find(m => m.key === defaultTab)?.label ||
|
|
1622
|
+
'APIs (Network)'}
|
|
1623
|
+
</react_native_1.Text>
|
|
1624
|
+
<react_native_1.View style={{
|
|
1281
1625
|
backgroundColor: `${AppColors_1.AppColors.purple}14`,
|
|
1282
1626
|
paddingHorizontal: 6,
|
|
1283
1627
|
paddingVertical: 1.5,
|
|
1284
1628
|
borderRadius: 6,
|
|
1285
1629
|
}}>
|
|
1286
|
-
|
|
1630
|
+
<react_native_1.Text style={{
|
|
1287
1631
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1288
1632
|
fontSize: 8.5,
|
|
1289
1633
|
color: AppColors_1.AppColors.purple,
|
|
1290
1634
|
}}>
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
</react_native_1.View>
|
|
1635
|
+
DEFAULT
|
|
1636
|
+
</react_native_1.Text>
|
|
1294
1637
|
</react_native_1.View>
|
|
1638
|
+
</react_native_1.View>
|
|
1295
1639
|
|
|
1296
|
-
|
|
1640
|
+
<react_native_1.View style={{
|
|
1297
1641
|
transform: [
|
|
1298
1642
|
{ rotate: isDefaultTabDropdownOpen ? '180deg' : '0deg' },
|
|
1299
1643
|
],
|
|
1300
1644
|
}}>
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1645
|
+
<NetworkIcons_1.ChevronDownIcon color={AppColors_1.AppColors.grayText} size={15}/>
|
|
1646
|
+
</react_native_1.View>
|
|
1647
|
+
</TouchableScale_1.default>
|
|
1304
1648
|
|
|
1305
|
-
|
|
1306
|
-
|
|
1649
|
+
{/* Dropdown Options List */}
|
|
1650
|
+
{isDefaultTabDropdownOpen && (<react_native_1.View style={{
|
|
1307
1651
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1308
1652
|
borderRadius: 10,
|
|
1309
1653
|
borderWidth: 1,
|
|
@@ -1315,7 +1659,7 @@ const SettingsPanel = () => {
|
|
|
1315
1659
|
shadowOffset: { width: 0, height: 3 },
|
|
1316
1660
|
elevation: 4,
|
|
1317
1661
|
}}>
|
|
1318
|
-
|
|
1662
|
+
{allModules
|
|
1319
1663
|
.filter(tab => tab.key === 'apis' ||
|
|
1320
1664
|
stagedTabVisibility?.[tab.key] ||
|
|
1321
1665
|
tabVisibility?.[tab.key])
|
|
@@ -1337,12 +1681,12 @@ const SettingsPanel = () => {
|
|
|
1337
1681
|
borderBottomWidth: isLast ? 0 : 1,
|
|
1338
1682
|
borderBottomColor: AppColors_1.AppColors.dividerColor,
|
|
1339
1683
|
}}>
|
|
1340
|
-
|
|
1684
|
+
<react_native_1.View style={{
|
|
1341
1685
|
flexDirection: 'row',
|
|
1342
1686
|
alignItems: 'center',
|
|
1343
1687
|
gap: 10,
|
|
1344
1688
|
}}>
|
|
1345
|
-
|
|
1689
|
+
<react_native_1.View style={{
|
|
1346
1690
|
width: 6,
|
|
1347
1691
|
height: 6,
|
|
1348
1692
|
borderRadius: 3,
|
|
@@ -1350,7 +1694,7 @@ const SettingsPanel = () => {
|
|
|
1350
1694
|
? AppColors_1.AppColors.purple
|
|
1351
1695
|
: AppColors_1.AppColors.grayTextWeak,
|
|
1352
1696
|
}}/>
|
|
1353
|
-
|
|
1697
|
+
<react_native_1.Text style={{
|
|
1354
1698
|
fontFamily: isActive
|
|
1355
1699
|
? AppFonts_1.AppFonts.interBold
|
|
1356
1700
|
: AppFonts_1.AppFonts.interMedium,
|
|
@@ -1359,18 +1703,18 @@ const SettingsPanel = () => {
|
|
|
1359
1703
|
? AppColors_1.AppColors.purple
|
|
1360
1704
|
: AppColors_1.AppColors.primaryBlack,
|
|
1361
1705
|
}}>
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1706
|
+
{tab.label}
|
|
1707
|
+
</react_native_1.Text>
|
|
1708
|
+
</react_native_1.View>
|
|
1709
|
+
{isActive && (<NetworkIcons_1.CheckIcon size={14} color={AppColors_1.AppColors.purple}/>)}
|
|
1710
|
+
</TouchableScale_1.default>);
|
|
1367
1711
|
})}
|
|
1368
|
-
|
|
1369
|
-
</react_native_1.View>
|
|
1712
|
+
</react_native_1.View>)}
|
|
1370
1713
|
</react_native_1.View>
|
|
1714
|
+
</react_native_1.View>
|
|
1371
1715
|
|
|
1372
|
-
|
|
1373
|
-
|
|
1716
|
+
{/* Section 4: Privacy & Diagnostics */}
|
|
1717
|
+
<react_native_1.View style={{
|
|
1374
1718
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1375
1719
|
borderRadius: 14,
|
|
1376
1720
|
borderWidth: 1,
|
|
@@ -1379,29 +1723,29 @@ const SettingsPanel = () => {
|
|
|
1379
1723
|
padding: 14,
|
|
1380
1724
|
gap: 12,
|
|
1381
1725
|
}}>
|
|
1382
|
-
|
|
1726
|
+
<react_native_1.Text style={{
|
|
1383
1727
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1384
1728
|
fontSize: 11,
|
|
1385
1729
|
lineHeight: 14,
|
|
1386
1730
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
1387
1731
|
letterSpacing: 0.8,
|
|
1388
1732
|
}}>
|
|
1389
|
-
|
|
1390
|
-
|
|
1733
|
+
PRIVACY & ANONYMOUS DIAGNOSTICS
|
|
1734
|
+
</react_native_1.Text>
|
|
1391
1735
|
|
|
1392
|
-
|
|
1736
|
+
<react_native_1.View style={{
|
|
1393
1737
|
flexDirection: 'row',
|
|
1394
1738
|
alignItems: 'center',
|
|
1395
1739
|
justifyContent: 'space-between',
|
|
1396
1740
|
}}>
|
|
1397
|
-
|
|
1741
|
+
<react_native_1.View style={{
|
|
1398
1742
|
flexDirection: 'row',
|
|
1399
1743
|
alignItems: 'center',
|
|
1400
1744
|
gap: 10,
|
|
1401
1745
|
flex: 1,
|
|
1402
1746
|
marginRight: 10,
|
|
1403
1747
|
}}>
|
|
1404
|
-
|
|
1748
|
+
<react_native_1.View style={{
|
|
1405
1749
|
width: 32,
|
|
1406
1750
|
height: 32,
|
|
1407
1751
|
borderRadius: 8,
|
|
@@ -1409,30 +1753,32 @@ const SettingsPanel = () => {
|
|
|
1409
1753
|
alignItems: 'center',
|
|
1410
1754
|
justifyContent: 'center',
|
|
1411
1755
|
}}>
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1756
|
+
<NetworkIcons_1.ShieldAlertIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1757
|
+
</react_native_1.View>
|
|
1758
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1759
|
+
<react_native_1.Text style={{
|
|
1416
1760
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1417
1761
|
fontSize: 13.5,
|
|
1418
1762
|
lineHeight: 18,
|
|
1419
1763
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1420
1764
|
}}>
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1765
|
+
Help Improve In-App Inspector
|
|
1766
|
+
</react_native_1.Text>
|
|
1767
|
+
<react_native_1.Text style={{
|
|
1424
1768
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1425
1769
|
fontSize: 11,
|
|
1426
1770
|
lineHeight: 15,
|
|
1427
1771
|
color: AppColors_1.AppColors.grayText,
|
|
1428
1772
|
marginTop: 1,
|
|
1429
1773
|
}}>
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1774
|
+
Share non-identifiable technical metrics (RN version, JS
|
|
1775
|
+
engine, device model). No user data or network payloads
|
|
1776
|
+
are captured.
|
|
1777
|
+
</react_native_1.Text>
|
|
1433
1778
|
</react_native_1.View>
|
|
1779
|
+
</react_native_1.View>
|
|
1434
1780
|
|
|
1435
|
-
|
|
1781
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle Anonymous Telemetry" accessibilityState={{ checked: telemetryConsent }} onPress={handleToggleTelemetry} style={{
|
|
1436
1782
|
width: 42,
|
|
1437
1783
|
height: 24,
|
|
1438
1784
|
borderRadius: 12,
|
|
@@ -1443,7 +1789,7 @@ const SettingsPanel = () => {
|
|
|
1443
1789
|
justifyContent: 'center',
|
|
1444
1790
|
alignItems: telemetryConsent ? 'flex-end' : 'flex-start',
|
|
1445
1791
|
}}>
|
|
1446
|
-
|
|
1792
|
+
<react_native_1.View style={{
|
|
1447
1793
|
width: 20,
|
|
1448
1794
|
height: 20,
|
|
1449
1795
|
borderRadius: 10,
|
|
@@ -1453,12 +1799,12 @@ const SettingsPanel = () => {
|
|
|
1453
1799
|
shadowRadius: 2,
|
|
1454
1800
|
shadowOffset: { width: 0, height: 1 },
|
|
1455
1801
|
}}/>
|
|
1456
|
-
|
|
1457
|
-
</react_native_1.View>
|
|
1802
|
+
</TouchableScale_1.default>
|
|
1458
1803
|
</react_native_1.View>
|
|
1804
|
+
</react_native_1.View>
|
|
1459
1805
|
|
|
1460
|
-
|
|
1461
|
-
|
|
1806
|
+
{/* Section 5: Notifications & Toasts */}
|
|
1807
|
+
<react_native_1.View style={{
|
|
1462
1808
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1463
1809
|
borderRadius: 14,
|
|
1464
1810
|
borderWidth: 1,
|
|
@@ -1467,29 +1813,29 @@ const SettingsPanel = () => {
|
|
|
1467
1813
|
padding: 14,
|
|
1468
1814
|
gap: 12,
|
|
1469
1815
|
}}>
|
|
1470
|
-
|
|
1816
|
+
<react_native_1.Text style={{
|
|
1471
1817
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1472
1818
|
fontSize: 11,
|
|
1473
1819
|
lineHeight: 14,
|
|
1474
1820
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
1475
1821
|
letterSpacing: 0.8,
|
|
1476
1822
|
}}>
|
|
1477
|
-
|
|
1478
|
-
|
|
1823
|
+
NOTIFICATIONS & TOASTS
|
|
1824
|
+
</react_native_1.Text>
|
|
1479
1825
|
|
|
1480
|
-
|
|
1826
|
+
<react_native_1.View style={{
|
|
1481
1827
|
flexDirection: 'row',
|
|
1482
1828
|
alignItems: 'center',
|
|
1483
1829
|
justifyContent: 'space-between',
|
|
1484
1830
|
}}>
|
|
1485
|
-
|
|
1831
|
+
<react_native_1.View style={{
|
|
1486
1832
|
flexDirection: 'row',
|
|
1487
1833
|
alignItems: 'center',
|
|
1488
1834
|
gap: 10,
|
|
1489
1835
|
flex: 1,
|
|
1490
1836
|
marginRight: 10,
|
|
1491
1837
|
}}>
|
|
1492
|
-
|
|
1838
|
+
<react_native_1.View style={{
|
|
1493
1839
|
width: 32,
|
|
1494
1840
|
height: 32,
|
|
1495
1841
|
borderRadius: 8,
|
|
@@ -1497,30 +1843,31 @@ const SettingsPanel = () => {
|
|
|
1497
1843
|
alignItems: 'center',
|
|
1498
1844
|
justifyContent: 'center',
|
|
1499
1845
|
}}>
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1846
|
+
<NetworkIcons_1.PackageIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1847
|
+
</react_native_1.View>
|
|
1848
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1849
|
+
<react_native_1.Text style={{
|
|
1504
1850
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1505
1851
|
fontSize: 13.5,
|
|
1506
1852
|
lineHeight: 18,
|
|
1507
1853
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1508
1854
|
}}>
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1855
|
+
NPM Update Toast
|
|
1856
|
+
</react_native_1.Text>
|
|
1857
|
+
<react_native_1.Text style={{
|
|
1512
1858
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1513
1859
|
fontSize: 11,
|
|
1514
1860
|
lineHeight: 15,
|
|
1515
1861
|
color: AppColors_1.AppColors.grayText,
|
|
1516
1862
|
marginTop: 1,
|
|
1517
1863
|
}}>
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
</react_native_1.
|
|
1864
|
+
Show a floating toast banner with countdown progress when
|
|
1865
|
+
a newer release is published on npm.
|
|
1866
|
+
</react_native_1.Text>
|
|
1521
1867
|
</react_native_1.View>
|
|
1868
|
+
</react_native_1.View>
|
|
1522
1869
|
|
|
1523
|
-
|
|
1870
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle NPM Update Toast" accessibilityState={{ checked: showUpdateToast }} onPress={() => setShowUpdateToast(prev => !prev)} style={{
|
|
1524
1871
|
width: 42,
|
|
1525
1872
|
height: 24,
|
|
1526
1873
|
borderRadius: 12,
|
|
@@ -1531,7 +1878,7 @@ const SettingsPanel = () => {
|
|
|
1531
1878
|
justifyContent: 'center',
|
|
1532
1879
|
alignItems: showUpdateToast ? 'flex-end' : 'flex-start',
|
|
1533
1880
|
}}>
|
|
1534
|
-
|
|
1881
|
+
<react_native_1.View style={{
|
|
1535
1882
|
width: 20,
|
|
1536
1883
|
height: 20,
|
|
1537
1884
|
borderRadius: 10,
|
|
@@ -1541,15 +1888,137 @@ const SettingsPanel = () => {
|
|
|
1541
1888
|
shadowRadius: 2,
|
|
1542
1889
|
shadowOffset: { width: 0, height: 1 },
|
|
1543
1890
|
}}/>
|
|
1544
|
-
|
|
1891
|
+
</TouchableScale_1.default>
|
|
1892
|
+
</react_native_1.View>
|
|
1893
|
+
</react_native_1.View>
|
|
1894
|
+
|
|
1895
|
+
{/* Section 6: NPM Package & Updates */}
|
|
1896
|
+
<react_native_1.View style={{
|
|
1897
|
+
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1898
|
+
borderRadius: 14,
|
|
1899
|
+
borderWidth: 1,
|
|
1900
|
+
borderColor: AppColors_1.AppColors.grayBorderSecondary,
|
|
1901
|
+
overflow: 'hidden',
|
|
1902
|
+
padding: 14,
|
|
1903
|
+
gap: 12,
|
|
1904
|
+
}}>
|
|
1905
|
+
<react_native_1.Text style={{
|
|
1906
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1907
|
+
fontSize: 11,
|
|
1908
|
+
lineHeight: 14,
|
|
1909
|
+
color: AppColors_1.AppColors.grayTextWeak,
|
|
1910
|
+
letterSpacing: 0.8,
|
|
1911
|
+
}}>
|
|
1912
|
+
PACKAGE VERSION & UPDATES
|
|
1913
|
+
</react_native_1.Text>
|
|
1914
|
+
|
|
1915
|
+
<react_native_1.View style={{
|
|
1916
|
+
flexDirection: 'row',
|
|
1917
|
+
alignItems: 'center',
|
|
1918
|
+
justifyContent: 'space-between',
|
|
1919
|
+
}}>
|
|
1920
|
+
<react_native_1.View style={{
|
|
1921
|
+
flexDirection: 'row',
|
|
1922
|
+
alignItems: 'center',
|
|
1923
|
+
gap: 10,
|
|
1924
|
+
flex: 1,
|
|
1925
|
+
marginRight: 8,
|
|
1926
|
+
}}>
|
|
1927
|
+
<react_native_1.View style={{
|
|
1928
|
+
width: 32,
|
|
1929
|
+
height: 32,
|
|
1930
|
+
borderRadius: 8,
|
|
1931
|
+
backgroundColor: '#CB383715',
|
|
1932
|
+
alignItems: 'center',
|
|
1933
|
+
justifyContent: 'center',
|
|
1934
|
+
}}>
|
|
1935
|
+
<NetworkIcons_1.NpmIcon color="#CB3837" size={16}/>
|
|
1936
|
+
</react_native_1.View>
|
|
1937
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1938
|
+
<react_native_1.View style={{
|
|
1939
|
+
flexDirection: 'row',
|
|
1940
|
+
alignItems: 'center',
|
|
1941
|
+
gap: 6,
|
|
1942
|
+
}}>
|
|
1943
|
+
<react_native_1.Text style={{
|
|
1944
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1945
|
+
fontSize: 13.5,
|
|
1946
|
+
lineHeight: 18,
|
|
1947
|
+
color: AppColors_1.AppColors.primaryBlack,
|
|
1948
|
+
}}>
|
|
1949
|
+
v{constants_1.LIB_VERSION}
|
|
1950
|
+
</react_native_1.Text>
|
|
1951
|
+
{updateAvailable ? (<react_native_1.View style={{
|
|
1952
|
+
backgroundColor: '#F59E0B20',
|
|
1953
|
+
paddingHorizontal: 6,
|
|
1954
|
+
paddingVertical: 1.5,
|
|
1955
|
+
borderRadius: 5,
|
|
1956
|
+
borderWidth: 1,
|
|
1957
|
+
borderColor: '#F59E0B60',
|
|
1958
|
+
}}>
|
|
1959
|
+
<react_native_1.Text style={{
|
|
1960
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1961
|
+
fontSize: 9.5,
|
|
1962
|
+
color: '#D97706',
|
|
1963
|
+
}}>
|
|
1964
|
+
v{latestNpmVersion} Available ⚡
|
|
1965
|
+
</react_native_1.Text>
|
|
1966
|
+
</react_native_1.View>) : (<react_native_1.View style={{
|
|
1967
|
+
backgroundColor: `${AppColors_1.AppColors.emerald500}20`,
|
|
1968
|
+
paddingHorizontal: 6,
|
|
1969
|
+
paddingVertical: 1.5,
|
|
1970
|
+
borderRadius: 5,
|
|
1971
|
+
borderWidth: 1,
|
|
1972
|
+
borderColor: `${AppColors_1.AppColors.emerald500}50`,
|
|
1973
|
+
}}>
|
|
1974
|
+
<react_native_1.Text style={{
|
|
1975
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1976
|
+
fontSize: 9.5,
|
|
1977
|
+
color: AppColors_1.AppColors.emerald600,
|
|
1978
|
+
}}>
|
|
1979
|
+
Up to date
|
|
1980
|
+
</react_native_1.Text>
|
|
1981
|
+
</react_native_1.View>)}
|
|
1982
|
+
</react_native_1.View>
|
|
1983
|
+
<react_native_1.Text style={{
|
|
1984
|
+
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1985
|
+
fontSize: 11,
|
|
1986
|
+
lineHeight: 15,
|
|
1987
|
+
color: AppColors_1.AppColors.grayText,
|
|
1988
|
+
marginTop: 1,
|
|
1989
|
+
}}>
|
|
1990
|
+
{updateAvailable
|
|
1991
|
+
? `A newer version (v${latestNpmVersion}) is available on npm registry.`
|
|
1992
|
+
: 'You are running the latest version from npm registry.'}
|
|
1993
|
+
</react_native_1.Text>
|
|
1994
|
+
</react_native_1.View>
|
|
1545
1995
|
</react_native_1.View>
|
|
1996
|
+
|
|
1997
|
+
{updateAvailable && (<TouchableScale_1.default onPress={() => {
|
|
1998
|
+
(0, helpers_1.copyToClipboard)('npm install react-native-inapp-inspector@latest', 'Install Command');
|
|
1999
|
+
(0, toast_1.showToast)('Copied npm install command!');
|
|
2000
|
+
}} style={{
|
|
2001
|
+
backgroundColor: AppColors_1.AppColors.purple,
|
|
2002
|
+
paddingVertical: 6,
|
|
2003
|
+
paddingHorizontal: 10,
|
|
2004
|
+
borderRadius: 8,
|
|
2005
|
+
}}>
|
|
2006
|
+
<react_native_1.Text style={{
|
|
2007
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
2008
|
+
fontSize: 11,
|
|
2009
|
+
color: AppColors_1.AppColors.white,
|
|
2010
|
+
}}>
|
|
2011
|
+
Copy Upgrade
|
|
2012
|
+
</react_native_1.Text>
|
|
2013
|
+
</TouchableScale_1.default>)}
|
|
1546
2014
|
</react_native_1.View>
|
|
1547
|
-
</react_native_1.View>
|
|
1548
|
-
|
|
1549
|
-
|
|
2015
|
+
</react_native_1.View>
|
|
2016
|
+
</react_native_1.View>)}
|
|
2017
|
+
<react_native_1.View style={{ height: 48 }}/>
|
|
2018
|
+
</react_native_1.ScrollView>
|
|
1550
2019
|
|
|
1551
|
-
|
|
1552
|
-
|
|
2020
|
+
{/* Bottom Sticky Action Bar for Save Changes */}
|
|
2021
|
+
{settingsActiveSubTab === 'module' && (<react_native_1.View style={{
|
|
1553
2022
|
paddingHorizontal: 16,
|
|
1554
2023
|
paddingTop: 12,
|
|
1555
2024
|
paddingBottom: react_native_1.Platform.OS === 'ios' ? 36 : 24,
|
|
@@ -1565,16 +2034,16 @@ const SettingsPanel = () => {
|
|
|
1565
2034
|
shadowOffset: { width: 0, height: -3 },
|
|
1566
2035
|
elevation: 8,
|
|
1567
2036
|
}}>
|
|
1568
|
-
|
|
1569
|
-
|
|
2037
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
2038
|
+
<react_native_1.Text style={{
|
|
1570
2039
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1571
2040
|
fontSize: 13,
|
|
1572
2041
|
lineHeight: 17,
|
|
1573
2042
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1574
2043
|
}}>
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
2044
|
+
{stagedActiveCount} of {allModules.length} Modules Active
|
|
2045
|
+
</react_native_1.Text>
|
|
2046
|
+
<react_native_1.Text style={{
|
|
1578
2047
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1579
2048
|
fontSize: 11,
|
|
1580
2049
|
lineHeight: 15,
|
|
@@ -1583,13 +2052,13 @@ const SettingsPanel = () => {
|
|
|
1583
2052
|
: AppColors_1.AppColors.grayText,
|
|
1584
2053
|
marginTop: 1,
|
|
1585
2054
|
}}>
|
|
1586
|
-
|
|
2055
|
+
{hasUnsavedChanges
|
|
1587
2056
|
? t('settings.unsavedPending')
|
|
1588
2057
|
: t('settings.allSynchronized')}
|
|
1589
|
-
|
|
1590
|
-
|
|
2058
|
+
</react_native_1.Text>
|
|
2059
|
+
</react_native_1.View>
|
|
1591
2060
|
|
|
1592
|
-
|
|
2061
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel="Save Changes" onPress={handleSaveChanges} style={{
|
|
1593
2062
|
flexDirection: 'row',
|
|
1594
2063
|
alignItems: 'center',
|
|
1595
2064
|
gap: 6,
|
|
@@ -1600,18 +2069,18 @@ const SettingsPanel = () => {
|
|
|
1600
2069
|
paddingVertical: 10,
|
|
1601
2070
|
borderRadius: 10,
|
|
1602
2071
|
}}>
|
|
1603
|
-
|
|
1604
|
-
|
|
2072
|
+
<NetworkIcons_1.CheckIcon size={14} color={hasUnsavedChanges ? AppColors_1.AppColors.white : AppColors_1.AppColors.purple}/>
|
|
2073
|
+
<react_native_1.Text style={{
|
|
1605
2074
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1606
2075
|
fontSize: 13,
|
|
1607
2076
|
lineHeight: 17,
|
|
1608
2077
|
color: hasUnsavedChanges ? AppColors_1.AppColors.white : AppColors_1.AppColors.purple,
|
|
1609
2078
|
}}>
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
2079
|
+
{t('settings.saveChanges')}
|
|
2080
|
+
</react_native_1.Text>
|
|
2081
|
+
</TouchableScale_1.default>
|
|
2082
|
+
</react_native_1.View>)}
|
|
2083
|
+
</react_native_1.View>);
|
|
1615
2084
|
let content = null;
|
|
1616
2085
|
let title = '';
|
|
1617
2086
|
let icon = null;
|
|
@@ -1653,7 +2122,9 @@ const SettingsPanel = () => {
|
|
|
1653
2122
|
{renderSettingRow({
|
|
1654
2123
|
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1655
2124
|
label: t('settings.apis.clearNetworkLogs'),
|
|
1656
|
-
description: t('settings.apis.clearNetworkLogsDescription', {
|
|
2125
|
+
description: t('settings.apis.clearNetworkLogsDescription', {
|
|
2126
|
+
count: logs.length,
|
|
2127
|
+
}),
|
|
1657
2128
|
isLast: true,
|
|
1658
2129
|
onPress: () => {
|
|
1659
2130
|
(0, networkLogger_1.clearNetworkLogs)();
|
|
@@ -1840,9 +2311,7 @@ const SettingsPanel = () => {
|
|
|
1840
2311
|
: AppColors_1.AppColors.grayBorderSecondary,
|
|
1841
2312
|
padding: 2,
|
|
1842
2313
|
justifyContent: 'center',
|
|
1843
|
-
alignItems: showDuplicateLogs
|
|
1844
|
-
? 'flex-end'
|
|
1845
|
-
: 'flex-start',
|
|
2314
|
+
alignItems: showDuplicateLogs ? 'flex-end' : 'flex-start',
|
|
1846
2315
|
}}>
|
|
1847
2316
|
<react_native_1.View style={{
|
|
1848
2317
|
width: 20,
|
|
@@ -1868,7 +2337,9 @@ const SettingsPanel = () => {
|
|
|
1868
2337
|
{renderSettingRow({
|
|
1869
2338
|
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1870
2339
|
label: t('settings.logs.clearConsoleLogs'),
|
|
1871
|
-
description: t('settings.logs.clearConsoleLogsDescription', {
|
|
2340
|
+
description: t('settings.logs.clearConsoleLogsDescription', {
|
|
2341
|
+
count: consoleLogs.length,
|
|
2342
|
+
}),
|
|
1872
2343
|
isLast: true,
|
|
1873
2344
|
onPress: () => {
|
|
1874
2345
|
(0, consoleLogger_1.clearConsoleLogs)();
|
|
@@ -1911,7 +2382,9 @@ const SettingsPanel = () => {
|
|
|
1911
2382
|
{renderSettingRow({
|
|
1912
2383
|
icon: <NetworkIcons_1.AnalyticsIcon color={AppColors_1.AppColors.purple} size={16}/>,
|
|
1913
2384
|
label: t('settings.analytics.maxAnalyticsEvents'),
|
|
1914
|
-
description: t('settings.analytics.maxAnalyticsEventsDescription', {
|
|
2385
|
+
description: t('settings.analytics.maxAnalyticsEventsDescription', {
|
|
2386
|
+
count: analyticsEvents.length,
|
|
2387
|
+
}),
|
|
1915
2388
|
numericInput: {
|
|
1916
2389
|
value: maxAnalyticsEventsLimit,
|
|
1917
2390
|
onChange: setMaxAnalyticsEventsLimit,
|
|
@@ -1964,7 +2437,9 @@ const SettingsPanel = () => {
|
|
|
1964
2437
|
else if (settingsPage === 'redux') {
|
|
1965
2438
|
title = t('settings.redux.title');
|
|
1966
2439
|
icon = <NetworkIcons_1.ReduxIcon color={AppColors_1.AppColors.white} size={16}/>;
|
|
1967
|
-
rightInfo = t('settings.redux.reducers', {
|
|
2440
|
+
rightInfo = t('settings.redux.reducers', {
|
|
2441
|
+
count: Object.keys(reduxState || {}).length,
|
|
2442
|
+
});
|
|
1968
2443
|
content = (<react_native_1.ScrollView style={{ flex: 1 }} contentContainerStyle={{ padding: 16, paddingBottom: 100, gap: 12 }}>
|
|
1969
2444
|
<react_native_1.View style={{
|
|
1970
2445
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
@@ -2109,7 +2584,9 @@ const SettingsPanel = () => {
|
|
|
2109
2584
|
{renderSettingRow({
|
|
2110
2585
|
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
2111
2586
|
label: t('settings.crash.clearHistory'),
|
|
2112
|
-
description: t('settings.crash.clearHistoryDesc', {
|
|
2587
|
+
description: t('settings.crash.clearHistoryDesc', {
|
|
2588
|
+
count: crashRecords?.length || 0,
|
|
2589
|
+
}),
|
|
2113
2590
|
isLast: true,
|
|
2114
2591
|
onPress: () => {
|
|
2115
2592
|
(0, crashHandler_1.clearCrashRecords)();
|