react-native-inapp-inspector 2.0.4 → 2.0.5
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/dist/commonjs/components/Inspector/InspectorHeader.js +87 -50
- package/dist/commonjs/components/Inspector/MainScreen.js +1 -0
- package/dist/commonjs/components/Inspector/NetworkTab.js +317 -12
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +88 -39
- package/dist/commonjs/components/Inspector/SettingsPanel.js +525 -359
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.d.ts +8 -0
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +469 -0
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- 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/index.js +58 -7
- package/dist/commonjs/types/interfaces.d.ts +9 -0
- package/dist/esm/components/Inspector/InspectorHeader.js +87 -50
- package/dist/esm/components/Inspector/MainScreen.js +1 -0
- package/dist/esm/components/Inspector/NetworkTab.js +317 -12
- package/dist/esm/components/Inspector/NpmUpdateToast.js +88 -39
- package/dist/esm/components/Inspector/SettingsPanel.js +526 -360
- package/dist/esm/components/Inspector/UpdateAvailableModal.d.ts +8 -0
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +432 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- 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/index.js +58 -7
- package/dist/esm/types/interfaces.d.ts +9 -0
- package/package.json +1 -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, 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)(() => {
|
|
@@ -258,13 +261,15 @@ const SettingsPanel = () => {
|
|
|
258
261
|
MAX
|
|
259
262
|
</react_native_1.Text>
|
|
260
263
|
</react_native_1.View>
|
|
261
|
-
{opts.numericInput.min !== undefined ||
|
|
264
|
+
{opts.numericInput.min !== undefined ||
|
|
265
|
+
opts.numericInput.max !== undefined ? (<react_native_1.Text style={{
|
|
262
266
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
263
267
|
fontSize: 10,
|
|
264
268
|
lineHeight: 13,
|
|
265
269
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
266
270
|
}}>
|
|
267
|
-
Range: {opts.numericInput.min ?? 1} -
|
|
271
|
+
Range: {opts.numericInput.min ?? 1} -{' '}
|
|
272
|
+
{opts.numericInput.max ?? '∞'}
|
|
268
273
|
</react_native_1.Text>) : null}
|
|
269
274
|
</react_native_1.View>)}
|
|
270
275
|
{opts.picker && (<react_native_1.View style={{
|
|
@@ -307,8 +312,8 @@ const SettingsPanel = () => {
|
|
|
307
312
|
backgroundColor: AppColors_1.AppColors.grayBackground,
|
|
308
313
|
}}>
|
|
309
314
|
<react_native_1.ScrollView style={{ flex: 1 }} contentContainerStyle={{ padding: 16, paddingBottom: 100, gap: 14 }} showsVerticalScrollIndicator={false}>
|
|
310
|
-
|
|
311
|
-
|
|
315
|
+
{/* Segmented Top Navigation Sub-Tabs */}
|
|
316
|
+
<react_native_1.View style={{
|
|
312
317
|
flexDirection: 'row',
|
|
313
318
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
314
319
|
borderRadius: 12,
|
|
@@ -320,7 +325,7 @@ const SettingsPanel = () => {
|
|
|
320
325
|
shadowRadius: 4,
|
|
321
326
|
shadowOffset: { width: 0, height: 2 },
|
|
322
327
|
}}>
|
|
323
|
-
|
|
328
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="tab" accessibilityLabel={t('settings.modulesAndTools')} accessibilityState={{ selected: settingsActiveSubTab === 'module' }} onPress={() => {
|
|
324
329
|
(0, InspectorContext_1.animateNextLayout)();
|
|
325
330
|
setSettingsActiveSubTab('module');
|
|
326
331
|
}} style={{
|
|
@@ -335,10 +340,10 @@ const SettingsPanel = () => {
|
|
|
335
340
|
? AppColors_1.AppColors.purple
|
|
336
341
|
: 'transparent',
|
|
337
342
|
}}>
|
|
338
|
-
|
|
343
|
+
<NetworkIcons_1.LayersIcon color={settingsActiveSubTab === 'module'
|
|
339
344
|
? AppColors_1.AppColors.white
|
|
340
345
|
: AppColors_1.AppColors.grayText} size={13}/>
|
|
341
|
-
|
|
346
|
+
<react_native_1.Text style={{
|
|
342
347
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
343
348
|
fontSize: 12.5,
|
|
344
349
|
lineHeight: 16,
|
|
@@ -346,11 +351,11 @@ const SettingsPanel = () => {
|
|
|
346
351
|
? AppColors_1.AppColors.white
|
|
347
352
|
: AppColors_1.AppColors.grayText,
|
|
348
353
|
}}>
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
354
|
+
{t('settings.modulesAndTools')}
|
|
355
|
+
</react_native_1.Text>
|
|
356
|
+
</TouchableScale_1.default>
|
|
352
357
|
|
|
353
|
-
|
|
358
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="tab" accessibilityLabel={t('settings.uiPreferences')} accessibilityState={{ selected: settingsActiveSubTab === 'ui' }} onPress={() => {
|
|
354
359
|
(0, InspectorContext_1.animateNextLayout)();
|
|
355
360
|
setSettingsActiveSubTab('ui');
|
|
356
361
|
}} style={{
|
|
@@ -365,10 +370,10 @@ const SettingsPanel = () => {
|
|
|
365
370
|
? AppColors_1.AppColors.purple
|
|
366
371
|
: 'transparent',
|
|
367
372
|
}}>
|
|
368
|
-
|
|
373
|
+
<NetworkIcons_1.ScreenIcon color={settingsActiveSubTab === 'ui'
|
|
369
374
|
? AppColors_1.AppColors.white
|
|
370
375
|
: AppColors_1.AppColors.grayText} size={13}/>
|
|
371
|
-
|
|
376
|
+
<react_native_1.Text style={{
|
|
372
377
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
373
378
|
fontSize: 12.5,
|
|
374
379
|
lineHeight: 16,
|
|
@@ -376,15 +381,15 @@ const SettingsPanel = () => {
|
|
|
376
381
|
? AppColors_1.AppColors.white
|
|
377
382
|
: AppColors_1.AppColors.grayText,
|
|
378
383
|
}}>
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
384
|
+
{t('settings.uiPreferences')}
|
|
385
|
+
</react_native_1.Text>
|
|
386
|
+
</TouchableScale_1.default>
|
|
387
|
+
</react_native_1.View>
|
|
383
388
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
389
|
+
{settingsActiveSubTab === 'module' ? (<react_native_1.View style={{ gap: 12 }}>
|
|
390
|
+
{/* Individual Module Cards with Left Checkboxes */}
|
|
391
|
+
<react_native_1.View style={{ gap: 10 }}>
|
|
392
|
+
{allModules.map(moduleItem => {
|
|
388
393
|
const isReduxAvail = (0, reduxLogger_1.isReduxConnected)();
|
|
389
394
|
const isAnalyticsAvail = (0, analyticsLogger_2.isAnalyticsConnected)();
|
|
390
395
|
const isUnavailable = (moduleItem.key === 'redux' && !isReduxAvail) ||
|
|
@@ -422,14 +427,14 @@ const SettingsPanel = () => {
|
|
|
422
427
|
shadowRadius: 5,
|
|
423
428
|
shadowOffset: { width: 0, height: 2 },
|
|
424
429
|
}}>
|
|
425
|
-
|
|
426
|
-
|
|
430
|
+
{/* Top Row: [Checkbox] -> [Icon Tile] -> [Title & Subtitle] */}
|
|
431
|
+
<react_native_1.View style={{
|
|
427
432
|
flexDirection: 'row',
|
|
428
433
|
alignItems: 'flex-start',
|
|
429
434
|
gap: 10,
|
|
430
435
|
}}>
|
|
431
|
-
|
|
432
|
-
|
|
436
|
+
{/* 1. Checkbox on the Left */}
|
|
437
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="checkbox" accessibilityLabel={`Select ${moduleItem.label}`} accessibilityState={{
|
|
433
438
|
checked: isChecked,
|
|
434
439
|
disabled: isLocked,
|
|
435
440
|
}} disabled={isLocked} onPress={() => {
|
|
@@ -462,14 +467,14 @@ const SettingsPanel = () => {
|
|
|
462
467
|
shadowRadius: 2,
|
|
463
468
|
elevation: isChecked ? 2 : 0,
|
|
464
469
|
}}>
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
+
{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">
|
|
471
|
+
<react_native_svg_1.Path d="M7 10V7a5 5 0 0 1 10 0v3" stroke={AppColors_1.AppColors.grayText} strokeWidth="2.2" strokeLinecap="round"/>
|
|
472
|
+
<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}/>
|
|
473
|
+
</react_native_svg_1.default>) : null}
|
|
474
|
+
</TouchableScale_1.default>
|
|
470
475
|
|
|
471
|
-
|
|
472
|
-
|
|
476
|
+
{/* 2. Middle Tap Zone: Icon + Title & Desc */}
|
|
477
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel={`${moduleItem.label} settings`} disabled={isUnavailable} onPress={() => {
|
|
473
478
|
(0, InspectorContext_1.animateNextLayout)();
|
|
474
479
|
setSettingsPage(moduleItem.key);
|
|
475
480
|
}} style={{
|
|
@@ -478,8 +483,8 @@ const SettingsPanel = () => {
|
|
|
478
483
|
alignItems: 'flex-start',
|
|
479
484
|
gap: 10,
|
|
480
485
|
}}>
|
|
481
|
-
|
|
482
|
-
|
|
486
|
+
{/* Icon Tile */}
|
|
487
|
+
<react_native_1.View style={{
|
|
483
488
|
width: 36,
|
|
484
489
|
height: 36,
|
|
485
490
|
borderRadius: 10,
|
|
@@ -498,38 +503,38 @@ const SettingsPanel = () => {
|
|
|
498
503
|
justifyContent: 'center',
|
|
499
504
|
marginTop: 1,
|
|
500
505
|
}}>
|
|
501
|
-
|
|
506
|
+
{moduleItem.icon === 'apis' && (<NetworkIcons_1.SignalIcon color={isChecked
|
|
502
507
|
? AppColors_1.AppColors.purple
|
|
503
508
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
504
|
-
|
|
509
|
+
{moduleItem.icon === 'logs' && (<NetworkIcons_1.TerminalIcon color={isChecked
|
|
505
510
|
? AppColors_1.AppColors.purple
|
|
506
511
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
507
|
-
|
|
512
|
+
{moduleItem.icon === 'performance' && (<NetworkIcons_1.PerformanceIcon color={isChecked
|
|
508
513
|
? AppColors_1.AppColors.purple
|
|
509
514
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
510
|
-
|
|
515
|
+
{moduleItem.icon === 'bundle' && (<NetworkIcons_1.PackageIcon color={isChecked
|
|
511
516
|
? AppColors_1.AppColors.purple
|
|
512
517
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
513
|
-
|
|
518
|
+
{moduleItem.icon === 'crash' && (<NetworkIcons_1.CrashIcon color={isChecked
|
|
514
519
|
? AppColors_1.AppColors.purple
|
|
515
520
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
516
|
-
|
|
521
|
+
{moduleItem.icon === 'analytics' && (<NetworkIcons_1.AnalyticsIcon color={isChecked
|
|
517
522
|
? AppColors_1.AppColors.purple
|
|
518
523
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
519
|
-
|
|
524
|
+
{moduleItem.icon === 'redux' && (<NetworkIcons_1.ReduxIcon color={isChecked
|
|
520
525
|
? AppColors_1.AppColors.purple
|
|
521
526
|
: AppColors_1.AppColors.grayTextWeak} size={16}/>)}
|
|
522
|
-
|
|
527
|
+
</react_native_1.View>
|
|
523
528
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
529
|
+
{/* Titles & Status Pill */}
|
|
530
|
+
<react_native_1.View style={{ flex: 1, gap: 2 }}>
|
|
531
|
+
<react_native_1.View style={{
|
|
527
532
|
flexDirection: 'row',
|
|
528
533
|
alignItems: 'center',
|
|
529
534
|
gap: 6,
|
|
530
535
|
flexWrap: 'wrap',
|
|
531
536
|
}}>
|
|
532
|
-
|
|
537
|
+
<react_native_1.Text style={{
|
|
533
538
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
534
539
|
fontSize: 14,
|
|
535
540
|
lineHeight: 18,
|
|
@@ -537,11 +542,11 @@ const SettingsPanel = () => {
|
|
|
537
542
|
? AppColors_1.AppColors.grayText
|
|
538
543
|
: AppColors_1.AppColors.primaryBlack,
|
|
539
544
|
}}>
|
|
540
|
-
|
|
541
|
-
|
|
545
|
+
{moduleItem.label}
|
|
546
|
+
</react_native_1.Text>
|
|
542
547
|
|
|
543
|
-
|
|
544
|
-
|
|
548
|
+
{/* Default Startup Tab Badge */}
|
|
549
|
+
{moduleItem.key === defaultTab &&
|
|
545
550
|
!isUnavailable && (<react_native_1.View style={{
|
|
546
551
|
flexDirection: 'row',
|
|
547
552
|
alignItems: 'center',
|
|
@@ -553,25 +558,25 @@ const SettingsPanel = () => {
|
|
|
553
558
|
borderColor: `${AppColors_1.AppColors.purple}2E`,
|
|
554
559
|
gap: 3,
|
|
555
560
|
}}>
|
|
556
|
-
|
|
561
|
+
<react_native_1.View style={{
|
|
557
562
|
width: 4,
|
|
558
563
|
height: 4,
|
|
559
564
|
borderRadius: 2,
|
|
560
565
|
backgroundColor: AppColors_1.AppColors.purple,
|
|
561
566
|
}}/>
|
|
562
|
-
|
|
567
|
+
<react_native_1.Text style={{
|
|
563
568
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
564
569
|
fontSize: 8,
|
|
565
570
|
lineHeight: 11,
|
|
566
571
|
color: AppColors_1.AppColors.purple,
|
|
567
572
|
letterSpacing: 0.4,
|
|
568
573
|
}}>
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
574
|
+
{t('settings.defaultBadge')}
|
|
575
|
+
</react_native_1.Text>
|
|
576
|
+
</react_native_1.View>)}
|
|
572
577
|
|
|
573
|
-
|
|
574
|
-
|
|
578
|
+
{/* Status Pill */}
|
|
579
|
+
{moduleItem.key === 'apis' ? (<react_native_1.View style={{
|
|
575
580
|
backgroundColor: `${AppColors_1.AppColors.blue500}14`,
|
|
576
581
|
borderRadius: 4,
|
|
577
582
|
paddingHorizontal: 5,
|
|
@@ -579,16 +584,16 @@ const SettingsPanel = () => {
|
|
|
579
584
|
borderWidth: 1,
|
|
580
585
|
borderColor: `${AppColors_1.AppColors.blue500}33`,
|
|
581
586
|
}}>
|
|
582
|
-
|
|
587
|
+
<react_native_1.Text style={{
|
|
583
588
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
584
589
|
fontSize: 8,
|
|
585
590
|
lineHeight: 11,
|
|
586
591
|
color: AppColors_1.AppColors.blue500,
|
|
587
592
|
letterSpacing: 0.3,
|
|
588
593
|
}}>
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
594
|
+
{t('settings.coreBadge')}
|
|
595
|
+
</react_native_1.Text>
|
|
596
|
+
</react_native_1.View>) : isUnavailable ? (<react_native_1.View style={{
|
|
592
597
|
backgroundColor: `${AppColors_1.AppColors.amber500}18`,
|
|
593
598
|
borderRadius: 4,
|
|
594
599
|
paddingHorizontal: 5,
|
|
@@ -596,18 +601,18 @@ const SettingsPanel = () => {
|
|
|
596
601
|
borderWidth: 1,
|
|
597
602
|
borderColor: `${AppColors_1.AppColors.amber500}35`,
|
|
598
603
|
}}>
|
|
599
|
-
|
|
604
|
+
<react_native_1.Text style={{
|
|
600
605
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
601
606
|
fontSize: 8,
|
|
602
607
|
lineHeight: 11,
|
|
603
608
|
color: AppColors_1.AppColors.amber700,
|
|
604
609
|
letterSpacing: 0.3,
|
|
605
610
|
}}>
|
|
606
|
-
|
|
611
|
+
{moduleItem.key === 'redux'
|
|
607
612
|
? t('settings.notConnectedBadge')
|
|
608
613
|
: t('settings.notDetectedBadge')}
|
|
609
|
-
|
|
610
|
-
|
|
614
|
+
</react_native_1.Text>
|
|
615
|
+
</react_native_1.View>) : isChecked ? (<react_native_1.View style={{
|
|
611
616
|
backgroundColor: `${AppColors_1.AppColors.liveGreen}18`,
|
|
612
617
|
borderRadius: 4,
|
|
613
618
|
paddingHorizontal: 5,
|
|
@@ -615,16 +620,16 @@ const SettingsPanel = () => {
|
|
|
615
620
|
borderWidth: 1,
|
|
616
621
|
borderColor: `${AppColors_1.AppColors.liveGreen}38`,
|
|
617
622
|
}}>
|
|
618
|
-
|
|
623
|
+
<react_native_1.Text style={{
|
|
619
624
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
620
625
|
fontSize: 8,
|
|
621
626
|
lineHeight: 11,
|
|
622
627
|
color: AppColors_1.AppColors.green700,
|
|
623
628
|
letterSpacing: 0.3,
|
|
624
629
|
}}>
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
630
|
+
{t('settings.activeBadge')}
|
|
631
|
+
</react_native_1.Text>
|
|
632
|
+
</react_native_1.View>) : (<react_native_1.View style={{
|
|
628
633
|
backgroundColor: `${AppColors_1.AppColors.grayTextWeak}18`,
|
|
629
634
|
borderRadius: 4,
|
|
630
635
|
paddingHorizontal: 5,
|
|
@@ -632,33 +637,33 @@ const SettingsPanel = () => {
|
|
|
632
637
|
borderWidth: 1,
|
|
633
638
|
borderColor: `${AppColors_1.AppColors.grayTextWeak}2E`,
|
|
634
639
|
}}>
|
|
635
|
-
|
|
640
|
+
<react_native_1.Text style={{
|
|
636
641
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
637
642
|
fontSize: 8,
|
|
638
643
|
lineHeight: 11,
|
|
639
644
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
640
645
|
letterSpacing: 0.3,
|
|
641
646
|
}}>
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
647
|
+
{t('settings.dormantBadge')}
|
|
648
|
+
</react_native_1.Text>
|
|
649
|
+
</react_native_1.View>)}
|
|
650
|
+
</react_native_1.View>
|
|
646
651
|
|
|
647
|
-
|
|
652
|
+
<react_native_1.Text style={{
|
|
648
653
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
649
654
|
fontSize: 11,
|
|
650
655
|
color: AppColors_1.AppColors.grayText,
|
|
651
656
|
lineHeight: 15,
|
|
652
657
|
marginTop: 1,
|
|
653
658
|
}}>
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
+
{moduleItem.desc}
|
|
660
|
+
</react_native_1.Text>
|
|
661
|
+
</react_native_1.View>
|
|
662
|
+
</TouchableScale_1.default>
|
|
663
|
+
</react_native_1.View>
|
|
659
664
|
|
|
660
|
-
|
|
661
|
-
|
|
665
|
+
{/* Card Footer: Live Stats + Configure Button */}
|
|
666
|
+
{!isUnavailable && (<react_native_1.View style={{
|
|
662
667
|
flexDirection: 'row',
|
|
663
668
|
alignItems: 'center',
|
|
664
669
|
justifyContent: 'space-between',
|
|
@@ -666,14 +671,14 @@ const SettingsPanel = () => {
|
|
|
666
671
|
borderTopWidth: 1,
|
|
667
672
|
borderTopColor: AppColors_1.AppColors.dividerColor,
|
|
668
673
|
}}>
|
|
669
|
-
|
|
670
|
-
|
|
674
|
+
{/* Live Info Pill */}
|
|
675
|
+
<react_native_1.View style={{
|
|
671
676
|
flexDirection: 'row',
|
|
672
677
|
alignItems: 'center',
|
|
673
678
|
gap: 6,
|
|
674
679
|
flex: 1,
|
|
675
680
|
}}>
|
|
676
|
-
|
|
681
|
+
<react_native_1.View style={{
|
|
677
682
|
width: 6,
|
|
678
683
|
height: 6,
|
|
679
684
|
borderRadius: 3,
|
|
@@ -681,18 +686,18 @@ const SettingsPanel = () => {
|
|
|
681
686
|
? AppColors_1.AppColors.liveGreen
|
|
682
687
|
: AppColors_1.AppColors.grayTextWeak,
|
|
683
688
|
}}/>
|
|
684
|
-
|
|
689
|
+
<react_native_1.Text style={{
|
|
685
690
|
fontFamily: AppFonts_1.AppFonts.interMedium,
|
|
686
691
|
fontSize: 11,
|
|
687
692
|
color: AppColors_1.AppColors.grayText,
|
|
688
693
|
lineHeight: 14,
|
|
689
694
|
}}>
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
695
|
+
{liveStats}
|
|
696
|
+
</react_native_1.Text>
|
|
697
|
+
</react_native_1.View>
|
|
693
698
|
|
|
694
|
-
|
|
695
|
-
|
|
699
|
+
{/* Sleek Configure Button */}
|
|
700
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel={`Configure ${moduleItem.label} settings`} onPress={() => {
|
|
696
701
|
(0, InspectorContext_1.animateNextLayout)();
|
|
697
702
|
setSettingsPage(moduleItem.key);
|
|
698
703
|
}} style={{
|
|
@@ -706,24 +711,24 @@ const SettingsPanel = () => {
|
|
|
706
711
|
borderWidth: 1,
|
|
707
712
|
borderColor: `${AppColors_1.AppColors.purple}26`,
|
|
708
713
|
}}>
|
|
709
|
-
|
|
710
|
-
|
|
714
|
+
<NetworkIcons_1.SettingsIcon color={AppColors_1.AppColors.purple} size={11}/>
|
|
715
|
+
<react_native_1.Text style={{
|
|
711
716
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
712
717
|
fontSize: 11,
|
|
713
718
|
lineHeight: 14,
|
|
714
719
|
color: AppColors_1.AppColors.purple,
|
|
715
720
|
}}>
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
721
|
+
{t('settings.configure')}
|
|
722
|
+
</react_native_1.Text>
|
|
723
|
+
<NetworkIcons_1.ForwardChevronIcon color={AppColors_1.AppColors.purple} size={9}/>
|
|
724
|
+
</TouchableScale_1.default>
|
|
725
|
+
</react_native_1.View>)}
|
|
726
|
+
</react_native_1.View>);
|
|
722
727
|
})}
|
|
723
|
-
|
|
728
|
+
</react_native_1.View>
|
|
724
729
|
|
|
725
|
-
|
|
726
|
-
|
|
730
|
+
{/* Section 3.5: RAM-Based Auto Limits */}
|
|
731
|
+
<react_native_1.View style={{
|
|
727
732
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
728
733
|
borderRadius: 14,
|
|
729
734
|
borderWidth: 1,
|
|
@@ -732,29 +737,29 @@ const SettingsPanel = () => {
|
|
|
732
737
|
padding: 14,
|
|
733
738
|
gap: 12,
|
|
734
739
|
}}>
|
|
735
|
-
|
|
740
|
+
<react_native_1.Text style={{
|
|
736
741
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
737
742
|
fontSize: 11,
|
|
738
743
|
lineHeight: 14,
|
|
739
744
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
740
745
|
letterSpacing: 0.8,
|
|
741
746
|
}}>
|
|
742
|
-
|
|
743
|
-
|
|
747
|
+
RAM-Based Auto Limits
|
|
748
|
+
</react_native_1.Text>
|
|
744
749
|
|
|
745
|
-
|
|
746
|
-
|
|
750
|
+
{/* Auto RAM Limit Toggle */}
|
|
751
|
+
<react_native_1.View style={{
|
|
747
752
|
flexDirection: 'row',
|
|
748
753
|
alignItems: 'center',
|
|
749
754
|
justifyContent: 'space-between',
|
|
750
755
|
}}>
|
|
751
|
-
|
|
756
|
+
<react_native_1.View style={{
|
|
752
757
|
flexDirection: 'row',
|
|
753
758
|
alignItems: 'center',
|
|
754
759
|
gap: 10,
|
|
755
760
|
flex: 1,
|
|
756
761
|
}}>
|
|
757
|
-
|
|
762
|
+
<react_native_1.View style={{
|
|
758
763
|
width: 32,
|
|
759
764
|
height: 32,
|
|
760
765
|
borderRadius: 8,
|
|
@@ -762,30 +767,31 @@ const SettingsPanel = () => {
|
|
|
762
767
|
alignItems: 'center',
|
|
763
768
|
justifyContent: 'center',
|
|
764
769
|
}}>
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
770
|
+
<NetworkIcons_1.PerformanceIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
771
|
+
</react_native_1.View>
|
|
772
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
773
|
+
<react_native_1.Text style={{
|
|
769
774
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
770
775
|
fontSize: 13.5,
|
|
771
776
|
lineHeight: 18,
|
|
772
777
|
color: AppColors_1.AppColors.primaryBlack,
|
|
773
778
|
}}>
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
779
|
+
Auto-Calculate Limits from Device RAM
|
|
780
|
+
</react_native_1.Text>
|
|
781
|
+
<react_native_1.Text style={{
|
|
777
782
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
778
783
|
fontSize: 11,
|
|
779
784
|
lineHeight: 15,
|
|
780
785
|
color: AppColors_1.AppColors.grayText,
|
|
781
786
|
marginTop: 1,
|
|
782
787
|
}}>
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
</react_native_1.
|
|
788
|
+
Automatically set API, Logs, Analytics & Crash limits
|
|
789
|
+
based on available memory
|
|
790
|
+
</react_native_1.Text>
|
|
786
791
|
</react_native_1.View>
|
|
792
|
+
</react_native_1.View>
|
|
787
793
|
|
|
788
|
-
|
|
794
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle auto RAM limit calculation" accessibilityState={{ checked: isAutoRamLimitEnabled }} onPress={() => setIsAutoRamLimitEnabled(prev => !prev)} style={{
|
|
789
795
|
width: 42,
|
|
790
796
|
height: 24,
|
|
791
797
|
borderRadius: 12,
|
|
@@ -794,9 +800,11 @@ const SettingsPanel = () => {
|
|
|
794
800
|
: AppColors_1.AppColors.grayBorderSecondary,
|
|
795
801
|
padding: 2,
|
|
796
802
|
justifyContent: 'center',
|
|
797
|
-
alignItems: isAutoRamLimitEnabled
|
|
803
|
+
alignItems: isAutoRamLimitEnabled
|
|
804
|
+
? 'flex-end'
|
|
805
|
+
: 'flex-start',
|
|
798
806
|
}}>
|
|
799
|
-
|
|
807
|
+
<react_native_1.View style={{
|
|
800
808
|
width: 20,
|
|
801
809
|
height: 20,
|
|
802
810
|
borderRadius: 10,
|
|
@@ -806,14 +814,14 @@ const SettingsPanel = () => {
|
|
|
806
814
|
shadowRadius: 2,
|
|
807
815
|
shadowOffset: { width: 0, height: 1 },
|
|
808
816
|
}}/>
|
|
809
|
-
|
|
810
|
-
|
|
817
|
+
</TouchableScale_1.default>
|
|
818
|
+
</react_native_1.View>
|
|
811
819
|
|
|
812
|
-
|
|
820
|
+
<react_native_1.View style={{ height: 1, backgroundColor: AppColors_1.AppColors.dividerColor }}/>
|
|
813
821
|
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
822
|
+
{/* Device Free RAM Display */}
|
|
823
|
+
<react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 10 }}>
|
|
824
|
+
<react_native_1.View style={{
|
|
817
825
|
width: 32,
|
|
818
826
|
height: 32,
|
|
819
827
|
borderRadius: 8,
|
|
@@ -823,10 +831,12 @@ const SettingsPanel = () => {
|
|
|
823
831
|
alignItems: 'center',
|
|
824
832
|
justifyContent: 'center',
|
|
825
833
|
}}>
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
834
|
+
<NetworkIcons_1.SignalIcon color={isAutoRamLimitEnabled
|
|
835
|
+
? AppColors_1.AppColors.purple
|
|
836
|
+
: AppColors_1.AppColors.grayTextWeak} size={15}/>
|
|
837
|
+
</react_native_1.View>
|
|
838
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
839
|
+
<react_native_1.Text style={{
|
|
830
840
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
831
841
|
fontSize: 13.5,
|
|
832
842
|
lineHeight: 18,
|
|
@@ -834,19 +844,19 @@ const SettingsPanel = () => {
|
|
|
834
844
|
? AppColors_1.AppColors.primaryBlack
|
|
835
845
|
: AppColors_1.AppColors.grayText,
|
|
836
846
|
}}>
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
847
|
+
Detected Free RAM
|
|
848
|
+
</react_native_1.Text>
|
|
849
|
+
<react_native_1.Text style={{
|
|
840
850
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
841
851
|
fontSize: 11,
|
|
842
852
|
lineHeight: 15,
|
|
843
853
|
color: AppColors_1.AppColors.grayText,
|
|
844
854
|
marginTop: 1,
|
|
845
855
|
}}>
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
856
|
+
{deviceFreeRamMb} MB available
|
|
857
|
+
</react_native_1.Text>
|
|
858
|
+
</react_native_1.View>
|
|
859
|
+
<react_native_1.View style={{
|
|
850
860
|
paddingHorizontal: 10,
|
|
851
861
|
paddingVertical: 5,
|
|
852
862
|
borderRadius: 8,
|
|
@@ -858,7 +868,7 @@ const SettingsPanel = () => {
|
|
|
858
868
|
? `${AppColors_1.AppColors.purple}26`
|
|
859
869
|
: AppColors_1.AppColors.dividerColor,
|
|
860
870
|
}}>
|
|
861
|
-
|
|
871
|
+
<react_native_1.Text style={{
|
|
862
872
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
863
873
|
fontSize: 12,
|
|
864
874
|
lineHeight: 15,
|
|
@@ -866,27 +876,49 @@ const SettingsPanel = () => {
|
|
|
866
876
|
? AppColors_1.AppColors.purple
|
|
867
877
|
: AppColors_1.AppColors.grayText,
|
|
868
878
|
}}>
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
</react_native_1.View>
|
|
879
|
+
{deviceFreeRamMb} MB
|
|
880
|
+
</react_native_1.Text>
|
|
872
881
|
</react_native_1.View>
|
|
882
|
+
</react_native_1.View>
|
|
873
883
|
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
884
|
+
{/* Current Auto-Calculated Limits Preview */}
|
|
885
|
+
{isAutoRamLimitEnabled && (<react_native_1.View style={{
|
|
886
|
+
marginTop: 8,
|
|
887
|
+
paddingTop: 8,
|
|
888
|
+
borderTopWidth: 1,
|
|
889
|
+
borderTopColor: AppColors_1.AppColors.dividerColor,
|
|
890
|
+
gap: 6,
|
|
891
|
+
}}>
|
|
892
|
+
<react_native_1.Text style={{
|
|
877
893
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
878
894
|
fontSize: 11.5,
|
|
879
895
|
lineHeight: 15,
|
|
880
896
|
color: AppColors_1.AppColors.purple,
|
|
881
897
|
}}>
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
{
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
898
|
+
Auto Profile: {autoRamProfile.profileName}
|
|
899
|
+
</react_native_1.Text>
|
|
900
|
+
<react_native_1.View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
|
|
901
|
+
{[
|
|
902
|
+
{
|
|
903
|
+
label: 'APIs',
|
|
904
|
+
value: autoRamProfile.maxNetworkLogs,
|
|
905
|
+
color: AppColors_1.AppColors.blue500,
|
|
906
|
+
},
|
|
907
|
+
{
|
|
908
|
+
label: 'Logs',
|
|
909
|
+
value: autoRamProfile.maxConsoleLogs,
|
|
910
|
+
color: AppColors_1.AppColors.sky500,
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
label: 'Analytics',
|
|
914
|
+
value: autoRamProfile.maxAnalyticsEvents,
|
|
915
|
+
color: AppColors_1.AppColors.purple,
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
label: 'Crash',
|
|
919
|
+
value: autoRamProfile.maxCrashRecords,
|
|
920
|
+
color: AppColors_1.AppColors.errorColor,
|
|
921
|
+
},
|
|
890
922
|
].map(item => (<react_native_1.View key={item.label} style={{
|
|
891
923
|
flexDirection: 'row',
|
|
892
924
|
alignItems: 'center',
|
|
@@ -898,29 +930,29 @@ const SettingsPanel = () => {
|
|
|
898
930
|
borderWidth: 1,
|
|
899
931
|
borderColor: `${item.color}33`,
|
|
900
932
|
}}>
|
|
901
|
-
|
|
933
|
+
<react_native_1.Text style={{
|
|
902
934
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
903
935
|
fontSize: 10.5,
|
|
904
936
|
lineHeight: 14,
|
|
905
937
|
color: item.color,
|
|
906
938
|
}}>
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
939
|
+
{item.label}
|
|
940
|
+
</react_native_1.Text>
|
|
941
|
+
<react_native_1.Text style={{
|
|
910
942
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
911
943
|
fontSize: 10.5,
|
|
912
944
|
lineHeight: 14,
|
|
913
945
|
color: item.color,
|
|
914
946
|
}}>
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
947
|
+
{item.value}
|
|
948
|
+
</react_native_1.Text>
|
|
949
|
+
</react_native_1.View>))}
|
|
950
|
+
</react_native_1.View>
|
|
951
|
+
</react_native_1.View>)}
|
|
952
|
+
</react_native_1.View>
|
|
953
|
+
</react_native_1.View>) : (<react_native_1.View style={{ gap: 14 }}>
|
|
954
|
+
{/* Section 1: Appearance */}
|
|
955
|
+
<react_native_1.View style={{
|
|
924
956
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
925
957
|
borderRadius: 14,
|
|
926
958
|
borderWidth: 1,
|
|
@@ -929,28 +961,28 @@ const SettingsPanel = () => {
|
|
|
929
961
|
padding: 14,
|
|
930
962
|
gap: 12,
|
|
931
963
|
}}>
|
|
932
|
-
|
|
964
|
+
<react_native_1.Text style={{
|
|
933
965
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
934
966
|
fontSize: 11,
|
|
935
967
|
lineHeight: 14,
|
|
936
968
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
937
969
|
letterSpacing: 0.8,
|
|
938
970
|
}}>
|
|
939
|
-
|
|
940
|
-
|
|
971
|
+
{t('settings.appearanceTheme')}
|
|
972
|
+
</react_native_1.Text>
|
|
941
973
|
|
|
942
|
-
|
|
974
|
+
<react_native_1.View style={{
|
|
943
975
|
flexDirection: 'row',
|
|
944
976
|
alignItems: 'center',
|
|
945
977
|
justifyContent: 'space-between',
|
|
946
978
|
}}>
|
|
947
|
-
|
|
979
|
+
<react_native_1.View style={{
|
|
948
980
|
flexDirection: 'row',
|
|
949
981
|
alignItems: 'center',
|
|
950
982
|
gap: 10,
|
|
951
983
|
flex: 1,
|
|
952
984
|
}}>
|
|
953
|
-
|
|
985
|
+
<react_native_1.View style={{
|
|
954
986
|
width: 32,
|
|
955
987
|
height: 32,
|
|
956
988
|
borderRadius: 8,
|
|
@@ -958,30 +990,30 @@ const SettingsPanel = () => {
|
|
|
958
990
|
alignItems: 'center',
|
|
959
991
|
justifyContent: 'center',
|
|
960
992
|
}}>
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
993
|
+
{isDark ? (<NetworkIcons_1.SunIcon color={AppColors_1.AppColors.purple} size={15}/>) : (<NetworkIcons_1.MoonIcon color={AppColors_1.AppColors.purple} size={15}/>)}
|
|
994
|
+
</react_native_1.View>
|
|
995
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
996
|
+
<react_native_1.Text style={{
|
|
965
997
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
966
998
|
fontSize: 13.5,
|
|
967
999
|
lineHeight: 18,
|
|
968
1000
|
color: AppColors_1.AppColors.primaryBlack,
|
|
969
1001
|
}}>
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
1002
|
+
{t('settings.general.darkMode')}
|
|
1003
|
+
</react_native_1.Text>
|
|
1004
|
+
<react_native_1.Text style={{
|
|
973
1005
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
974
1006
|
fontSize: 11,
|
|
975
1007
|
lineHeight: 15,
|
|
976
1008
|
color: AppColors_1.AppColors.grayText,
|
|
977
1009
|
marginTop: 1,
|
|
978
1010
|
}}>
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
</react_native_1.View>
|
|
1011
|
+
{t('settings.general.darkModeDescription')}
|
|
1012
|
+
</react_native_1.Text>
|
|
982
1013
|
</react_native_1.View>
|
|
1014
|
+
</react_native_1.View>
|
|
983
1015
|
|
|
984
|
-
|
|
1016
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle Dark Theme" accessibilityState={{ checked: isDark }} onPress={() => {
|
|
985
1017
|
const newTheme = !isDark;
|
|
986
1018
|
setIsDark(newTheme);
|
|
987
1019
|
(0, styles_1.toggleGlobalTheme)(newTheme);
|
|
@@ -996,7 +1028,7 @@ const SettingsPanel = () => {
|
|
|
996
1028
|
justifyContent: 'center',
|
|
997
1029
|
alignItems: isDark ? 'flex-end' : 'flex-start',
|
|
998
1030
|
}}>
|
|
999
|
-
|
|
1031
|
+
<react_native_1.View style={{
|
|
1000
1032
|
width: 20,
|
|
1001
1033
|
height: 20,
|
|
1002
1034
|
borderRadius: 10,
|
|
@@ -1006,12 +1038,12 @@ const SettingsPanel = () => {
|
|
|
1006
1038
|
shadowRadius: 2,
|
|
1007
1039
|
shadowOffset: { width: 0, height: 1 },
|
|
1008
1040
|
}}/>
|
|
1009
|
-
|
|
1010
|
-
</react_native_1.View>
|
|
1041
|
+
</TouchableScale_1.default>
|
|
1011
1042
|
</react_native_1.View>
|
|
1043
|
+
</react_native_1.View>
|
|
1012
1044
|
|
|
1013
|
-
|
|
1014
|
-
|
|
1045
|
+
{/* Section 2: Window & Layout */}
|
|
1046
|
+
<react_native_1.View style={{
|
|
1015
1047
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1016
1048
|
borderRadius: 14,
|
|
1017
1049
|
borderWidth: 1,
|
|
@@ -1020,31 +1052,31 @@ const SettingsPanel = () => {
|
|
|
1020
1052
|
padding: 14,
|
|
1021
1053
|
gap: 14,
|
|
1022
1054
|
}}>
|
|
1023
|
-
|
|
1055
|
+
<react_native_1.Text style={{
|
|
1024
1056
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1025
1057
|
fontSize: 11,
|
|
1026
1058
|
lineHeight: 14,
|
|
1027
1059
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
1028
1060
|
letterSpacing: 0.8,
|
|
1029
1061
|
}}>
|
|
1030
|
-
|
|
1031
|
-
|
|
1062
|
+
{t('settings.windowLayout')}
|
|
1063
|
+
</react_native_1.Text>
|
|
1032
1064
|
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1065
|
+
{/* Modal Height */}
|
|
1066
|
+
<react_native_1.View style={{ gap: 8 }}>
|
|
1067
|
+
<react_native_1.View style={{
|
|
1036
1068
|
flexDirection: 'row',
|
|
1037
1069
|
alignItems: 'center',
|
|
1038
1070
|
justifyContent: 'space-between',
|
|
1039
1071
|
gap: 10,
|
|
1040
1072
|
}}>
|
|
1041
|
-
|
|
1073
|
+
<react_native_1.View style={{
|
|
1042
1074
|
flexDirection: 'row',
|
|
1043
1075
|
alignItems: 'center',
|
|
1044
1076
|
gap: 10,
|
|
1045
1077
|
flex: 1,
|
|
1046
1078
|
}}>
|
|
1047
|
-
|
|
1079
|
+
<react_native_1.View style={{
|
|
1048
1080
|
width: 32,
|
|
1049
1081
|
height: 32,
|
|
1050
1082
|
borderRadius: 8,
|
|
@@ -1052,30 +1084,30 @@ const SettingsPanel = () => {
|
|
|
1052
1084
|
alignItems: 'center',
|
|
1053
1085
|
justifyContent: 'center',
|
|
1054
1086
|
}}>
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1087
|
+
<NetworkIcons_1.ScreenIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1088
|
+
</react_native_1.View>
|
|
1089
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1090
|
+
<react_native_1.Text style={{
|
|
1059
1091
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1060
1092
|
fontSize: 13.5,
|
|
1061
1093
|
lineHeight: 18,
|
|
1062
1094
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1063
1095
|
}}>
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1096
|
+
{t('settings.general.modalHeight')}
|
|
1097
|
+
</react_native_1.Text>
|
|
1098
|
+
<react_native_1.Text style={{
|
|
1067
1099
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1068
1100
|
fontSize: 11,
|
|
1069
1101
|
lineHeight: 15,
|
|
1070
1102
|
color: AppColors_1.AppColors.grayText,
|
|
1071
1103
|
marginTop: 1,
|
|
1072
1104
|
}}>
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
</react_native_1.View>
|
|
1105
|
+
{t('settings.general.modalHeightDescription')}
|
|
1106
|
+
</react_native_1.Text>
|
|
1076
1107
|
</react_native_1.View>
|
|
1108
|
+
</react_native_1.View>
|
|
1077
1109
|
|
|
1078
|
-
|
|
1110
|
+
{stagedHeight !== modalHeightPercent && (<TouchableScale_1.default onPress={() => {
|
|
1079
1111
|
setModalHeightPercent(stagedHeight);
|
|
1080
1112
|
}} style={{
|
|
1081
1113
|
flexDirection: 'row',
|
|
@@ -1091,32 +1123,32 @@ const SettingsPanel = () => {
|
|
|
1091
1123
|
shadowRadius: 2,
|
|
1092
1124
|
elevation: 2,
|
|
1093
1125
|
}}>
|
|
1094
|
-
|
|
1095
|
-
|
|
1126
|
+
<NetworkIcons_1.CheckIcon size={11} color={AppColors_1.AppColors.white}/>
|
|
1127
|
+
<react_native_1.Text style={{
|
|
1096
1128
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1097
1129
|
fontSize: 11,
|
|
1098
1130
|
color: AppColors_1.AppColors.white,
|
|
1099
1131
|
}}>
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1132
|
+
Save ({stagedHeight}%)
|
|
1133
|
+
</react_native_1.Text>
|
|
1134
|
+
</TouchableScale_1.default>)}
|
|
1135
|
+
</react_native_1.View>
|
|
1104
1136
|
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
</react_native_1.View>
|
|
1137
|
+
<react_native_1.View style={{ marginTop: 6 }}>
|
|
1138
|
+
<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
1139
|
</react_native_1.View>
|
|
1140
|
+
</react_native_1.View>
|
|
1109
1141
|
|
|
1110
|
-
|
|
1142
|
+
<react_native_1.View style={{ height: 1, backgroundColor: AppColors_1.AppColors.dividerColor }}/>
|
|
1111
1143
|
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1144
|
+
{/* Modal Animation */}
|
|
1145
|
+
<react_native_1.View style={{ gap: 8 }}>
|
|
1146
|
+
<react_native_1.View style={{
|
|
1115
1147
|
flexDirection: 'row',
|
|
1116
1148
|
alignItems: 'center',
|
|
1117
1149
|
gap: 10,
|
|
1118
1150
|
}}>
|
|
1119
|
-
|
|
1151
|
+
<react_native_1.View style={{
|
|
1120
1152
|
width: 32,
|
|
1121
1153
|
height: 32,
|
|
1122
1154
|
borderRadius: 8,
|
|
@@ -1124,30 +1156,30 @@ const SettingsPanel = () => {
|
|
|
1124
1156
|
alignItems: 'center',
|
|
1125
1157
|
justifyContent: 'center',
|
|
1126
1158
|
}}>
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1159
|
+
<NetworkIcons_1.MotionIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1160
|
+
</react_native_1.View>
|
|
1161
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1162
|
+
<react_native_1.Text style={{
|
|
1131
1163
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1132
1164
|
fontSize: 13.5,
|
|
1133
1165
|
lineHeight: 18,
|
|
1134
1166
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1135
1167
|
}}>
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1168
|
+
{t('settings.general.modalAnimation')}
|
|
1169
|
+
</react_native_1.Text>
|
|
1170
|
+
<react_native_1.Text style={{
|
|
1139
1171
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1140
1172
|
fontSize: 11,
|
|
1141
1173
|
lineHeight: 15,
|
|
1142
1174
|
color: AppColors_1.AppColors.grayText,
|
|
1143
1175
|
marginTop: 1,
|
|
1144
1176
|
}}>
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
</react_native_1.View>
|
|
1177
|
+
{t('settings.general.modalAnimationDescription')}
|
|
1178
|
+
</react_native_1.Text>
|
|
1148
1179
|
</react_native_1.View>
|
|
1180
|
+
</react_native_1.View>
|
|
1149
1181
|
|
|
1150
|
-
|
|
1182
|
+
<react_native_1.View style={{
|
|
1151
1183
|
flexDirection: 'row',
|
|
1152
1184
|
backgroundColor: AppColors_1.AppColors.grayBackground,
|
|
1153
1185
|
borderRadius: 10,
|
|
@@ -1155,7 +1187,7 @@ const SettingsPanel = () => {
|
|
|
1155
1187
|
borderWidth: 1,
|
|
1156
1188
|
borderColor: AppColors_1.AppColors.dividerColor,
|
|
1157
1189
|
}}>
|
|
1158
|
-
|
|
1190
|
+
{[
|
|
1159
1191
|
{ key: 'slide', label: 'Slide Up' },
|
|
1160
1192
|
{ key: 'fade', label: 'Fade' },
|
|
1161
1193
|
{ key: 'none', label: 'None' },
|
|
@@ -1170,7 +1202,7 @@ const SettingsPanel = () => {
|
|
|
1170
1202
|
? AppColors_1.AppColors.purple
|
|
1171
1203
|
: 'transparent',
|
|
1172
1204
|
}}>
|
|
1173
|
-
|
|
1205
|
+
<react_native_1.Text style={{
|
|
1174
1206
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1175
1207
|
fontSize: 11.5,
|
|
1176
1208
|
lineHeight: 15,
|
|
@@ -1178,16 +1210,16 @@ const SettingsPanel = () => {
|
|
|
1178
1210
|
? AppColors_1.AppColors.white
|
|
1179
1211
|
: AppColors_1.AppColors.grayText,
|
|
1180
1212
|
}}>
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1213
|
+
{opt.label}
|
|
1214
|
+
</react_native_1.Text>
|
|
1215
|
+
</TouchableScale_1.default>);
|
|
1184
1216
|
})}
|
|
1185
|
-
</react_native_1.View>
|
|
1186
1217
|
</react_native_1.View>
|
|
1187
1218
|
</react_native_1.View>
|
|
1219
|
+
</react_native_1.View>
|
|
1188
1220
|
|
|
1189
|
-
|
|
1190
|
-
|
|
1221
|
+
{/* Section 3: Default Startup Tab */}
|
|
1222
|
+
<react_native_1.View style={{
|
|
1191
1223
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1192
1224
|
borderRadius: 14,
|
|
1193
1225
|
borderWidth: 1,
|
|
@@ -1196,22 +1228,22 @@ const SettingsPanel = () => {
|
|
|
1196
1228
|
padding: 14,
|
|
1197
1229
|
gap: 12,
|
|
1198
1230
|
}}>
|
|
1199
|
-
|
|
1231
|
+
<react_native_1.Text style={{
|
|
1200
1232
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1201
1233
|
fontSize: 11,
|
|
1202
1234
|
lineHeight: 14,
|
|
1203
1235
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
1204
1236
|
letterSpacing: 0.8,
|
|
1205
1237
|
}}>
|
|
1206
|
-
|
|
1207
|
-
|
|
1238
|
+
{t('settings.startupDefault')}
|
|
1239
|
+
</react_native_1.Text>
|
|
1208
1240
|
|
|
1209
|
-
|
|
1241
|
+
<react_native_1.View style={{
|
|
1210
1242
|
flexDirection: 'row',
|
|
1211
1243
|
alignItems: 'center',
|
|
1212
1244
|
gap: 10,
|
|
1213
1245
|
}}>
|
|
1214
|
-
|
|
1246
|
+
<react_native_1.View style={{
|
|
1215
1247
|
width: 32,
|
|
1216
1248
|
height: 32,
|
|
1217
1249
|
borderRadius: 8,
|
|
@@ -1219,32 +1251,32 @@ const SettingsPanel = () => {
|
|
|
1219
1251
|
alignItems: 'center',
|
|
1220
1252
|
justifyContent: 'center',
|
|
1221
1253
|
}}>
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1254
|
+
<NetworkIcons_1.LayersIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1255
|
+
</react_native_1.View>
|
|
1256
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1257
|
+
<react_native_1.Text style={{
|
|
1226
1258
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1227
1259
|
fontSize: 13.5,
|
|
1228
1260
|
lineHeight: 18,
|
|
1229
1261
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1230
1262
|
}}>
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1263
|
+
{t('settings.general.defaultOpeningTab')}
|
|
1264
|
+
</react_native_1.Text>
|
|
1265
|
+
<react_native_1.Text style={{
|
|
1234
1266
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1235
1267
|
fontSize: 11,
|
|
1236
1268
|
lineHeight: 15,
|
|
1237
1269
|
color: AppColors_1.AppColors.grayText,
|
|
1238
1270
|
marginTop: 1,
|
|
1239
1271
|
}}>
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
</react_native_1.View>
|
|
1272
|
+
{t('settings.general.defaultOpeningTabDesc')}
|
|
1273
|
+
</react_native_1.Text>
|
|
1243
1274
|
</react_native_1.View>
|
|
1275
|
+
</react_native_1.View>
|
|
1244
1276
|
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1277
|
+
{/* Sleek Interactive Dropdown Picker */}
|
|
1278
|
+
<react_native_1.View style={{ marginTop: 6, gap: 6 }}>
|
|
1279
|
+
<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
1280
|
flexDirection: 'row',
|
|
1249
1281
|
alignItems: 'center',
|
|
1250
1282
|
justifyContent: 'space-between',
|
|
@@ -1257,53 +1289,54 @@ const SettingsPanel = () => {
|
|
|
1257
1289
|
paddingHorizontal: 14,
|
|
1258
1290
|
paddingVertical: 11,
|
|
1259
1291
|
}}>
|
|
1260
|
-
|
|
1292
|
+
<react_native_1.View style={{
|
|
1261
1293
|
flexDirection: 'row',
|
|
1262
1294
|
alignItems: 'center',
|
|
1263
1295
|
gap: 10,
|
|
1264
1296
|
flex: 1,
|
|
1265
1297
|
}}>
|
|
1266
|
-
|
|
1298
|
+
<react_native_1.View style={{
|
|
1267
1299
|
width: 8,
|
|
1268
1300
|
height: 8,
|
|
1269
1301
|
borderRadius: 4,
|
|
1270
1302
|
backgroundColor: AppColors_1.AppColors.purple,
|
|
1271
1303
|
}}/>
|
|
1272
|
-
|
|
1304
|
+
<react_native_1.Text style={{
|
|
1273
1305
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1274
1306
|
fontSize: 13.5,
|
|
1275
1307
|
lineHeight: 18,
|
|
1276
1308
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1277
1309
|
}}>
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1310
|
+
{allModules.find(m => m.key === defaultTab)?.label ||
|
|
1311
|
+
'APIs (Network)'}
|
|
1312
|
+
</react_native_1.Text>
|
|
1313
|
+
<react_native_1.View style={{
|
|
1281
1314
|
backgroundColor: `${AppColors_1.AppColors.purple}14`,
|
|
1282
1315
|
paddingHorizontal: 6,
|
|
1283
1316
|
paddingVertical: 1.5,
|
|
1284
1317
|
borderRadius: 6,
|
|
1285
1318
|
}}>
|
|
1286
|
-
|
|
1319
|
+
<react_native_1.Text style={{
|
|
1287
1320
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1288
1321
|
fontSize: 8.5,
|
|
1289
1322
|
color: AppColors_1.AppColors.purple,
|
|
1290
1323
|
}}>
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
</react_native_1.View>
|
|
1324
|
+
DEFAULT
|
|
1325
|
+
</react_native_1.Text>
|
|
1294
1326
|
</react_native_1.View>
|
|
1327
|
+
</react_native_1.View>
|
|
1295
1328
|
|
|
1296
|
-
|
|
1329
|
+
<react_native_1.View style={{
|
|
1297
1330
|
transform: [
|
|
1298
1331
|
{ rotate: isDefaultTabDropdownOpen ? '180deg' : '0deg' },
|
|
1299
1332
|
],
|
|
1300
1333
|
}}>
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1334
|
+
<NetworkIcons_1.ChevronDownIcon color={AppColors_1.AppColors.grayText} size={15}/>
|
|
1335
|
+
</react_native_1.View>
|
|
1336
|
+
</TouchableScale_1.default>
|
|
1304
1337
|
|
|
1305
|
-
|
|
1306
|
-
|
|
1338
|
+
{/* Dropdown Options List */}
|
|
1339
|
+
{isDefaultTabDropdownOpen && (<react_native_1.View style={{
|
|
1307
1340
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1308
1341
|
borderRadius: 10,
|
|
1309
1342
|
borderWidth: 1,
|
|
@@ -1315,7 +1348,7 @@ const SettingsPanel = () => {
|
|
|
1315
1348
|
shadowOffset: { width: 0, height: 3 },
|
|
1316
1349
|
elevation: 4,
|
|
1317
1350
|
}}>
|
|
1318
|
-
|
|
1351
|
+
{allModules
|
|
1319
1352
|
.filter(tab => tab.key === 'apis' ||
|
|
1320
1353
|
stagedTabVisibility?.[tab.key] ||
|
|
1321
1354
|
tabVisibility?.[tab.key])
|
|
@@ -1337,12 +1370,12 @@ const SettingsPanel = () => {
|
|
|
1337
1370
|
borderBottomWidth: isLast ? 0 : 1,
|
|
1338
1371
|
borderBottomColor: AppColors_1.AppColors.dividerColor,
|
|
1339
1372
|
}}>
|
|
1340
|
-
|
|
1373
|
+
<react_native_1.View style={{
|
|
1341
1374
|
flexDirection: 'row',
|
|
1342
1375
|
alignItems: 'center',
|
|
1343
1376
|
gap: 10,
|
|
1344
1377
|
}}>
|
|
1345
|
-
|
|
1378
|
+
<react_native_1.View style={{
|
|
1346
1379
|
width: 6,
|
|
1347
1380
|
height: 6,
|
|
1348
1381
|
borderRadius: 3,
|
|
@@ -1350,7 +1383,7 @@ const SettingsPanel = () => {
|
|
|
1350
1383
|
? AppColors_1.AppColors.purple
|
|
1351
1384
|
: AppColors_1.AppColors.grayTextWeak,
|
|
1352
1385
|
}}/>
|
|
1353
|
-
|
|
1386
|
+
<react_native_1.Text style={{
|
|
1354
1387
|
fontFamily: isActive
|
|
1355
1388
|
? AppFonts_1.AppFonts.interBold
|
|
1356
1389
|
: AppFonts_1.AppFonts.interMedium,
|
|
@@ -1359,18 +1392,18 @@ const SettingsPanel = () => {
|
|
|
1359
1392
|
? AppColors_1.AppColors.purple
|
|
1360
1393
|
: AppColors_1.AppColors.primaryBlack,
|
|
1361
1394
|
}}>
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1395
|
+
{tab.label}
|
|
1396
|
+
</react_native_1.Text>
|
|
1397
|
+
</react_native_1.View>
|
|
1398
|
+
{isActive && (<NetworkIcons_1.CheckIcon size={14} color={AppColors_1.AppColors.purple}/>)}
|
|
1399
|
+
</TouchableScale_1.default>);
|
|
1367
1400
|
})}
|
|
1368
|
-
|
|
1369
|
-
</react_native_1.View>
|
|
1401
|
+
</react_native_1.View>)}
|
|
1370
1402
|
</react_native_1.View>
|
|
1403
|
+
</react_native_1.View>
|
|
1371
1404
|
|
|
1372
|
-
|
|
1373
|
-
|
|
1405
|
+
{/* Section 4: Privacy & Diagnostics */}
|
|
1406
|
+
<react_native_1.View style={{
|
|
1374
1407
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1375
1408
|
borderRadius: 14,
|
|
1376
1409
|
borderWidth: 1,
|
|
@@ -1379,29 +1412,29 @@ const SettingsPanel = () => {
|
|
|
1379
1412
|
padding: 14,
|
|
1380
1413
|
gap: 12,
|
|
1381
1414
|
}}>
|
|
1382
|
-
|
|
1415
|
+
<react_native_1.Text style={{
|
|
1383
1416
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1384
1417
|
fontSize: 11,
|
|
1385
1418
|
lineHeight: 14,
|
|
1386
1419
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
1387
1420
|
letterSpacing: 0.8,
|
|
1388
1421
|
}}>
|
|
1389
|
-
|
|
1390
|
-
|
|
1422
|
+
PRIVACY & ANONYMOUS DIAGNOSTICS
|
|
1423
|
+
</react_native_1.Text>
|
|
1391
1424
|
|
|
1392
|
-
|
|
1425
|
+
<react_native_1.View style={{
|
|
1393
1426
|
flexDirection: 'row',
|
|
1394
1427
|
alignItems: 'center',
|
|
1395
1428
|
justifyContent: 'space-between',
|
|
1396
1429
|
}}>
|
|
1397
|
-
|
|
1430
|
+
<react_native_1.View style={{
|
|
1398
1431
|
flexDirection: 'row',
|
|
1399
1432
|
alignItems: 'center',
|
|
1400
1433
|
gap: 10,
|
|
1401
1434
|
flex: 1,
|
|
1402
1435
|
marginRight: 10,
|
|
1403
1436
|
}}>
|
|
1404
|
-
|
|
1437
|
+
<react_native_1.View style={{
|
|
1405
1438
|
width: 32,
|
|
1406
1439
|
height: 32,
|
|
1407
1440
|
borderRadius: 8,
|
|
@@ -1409,30 +1442,32 @@ const SettingsPanel = () => {
|
|
|
1409
1442
|
alignItems: 'center',
|
|
1410
1443
|
justifyContent: 'center',
|
|
1411
1444
|
}}>
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1445
|
+
<NetworkIcons_1.ShieldAlertIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1446
|
+
</react_native_1.View>
|
|
1447
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1448
|
+
<react_native_1.Text style={{
|
|
1416
1449
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1417
1450
|
fontSize: 13.5,
|
|
1418
1451
|
lineHeight: 18,
|
|
1419
1452
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1420
1453
|
}}>
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1454
|
+
Help Improve In-App Inspector
|
|
1455
|
+
</react_native_1.Text>
|
|
1456
|
+
<react_native_1.Text style={{
|
|
1424
1457
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1425
1458
|
fontSize: 11,
|
|
1426
1459
|
lineHeight: 15,
|
|
1427
1460
|
color: AppColors_1.AppColors.grayText,
|
|
1428
1461
|
marginTop: 1,
|
|
1429
1462
|
}}>
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1463
|
+
Share non-identifiable technical metrics (RN version, JS
|
|
1464
|
+
engine, device model). No user data or network payloads
|
|
1465
|
+
are captured.
|
|
1466
|
+
</react_native_1.Text>
|
|
1433
1467
|
</react_native_1.View>
|
|
1468
|
+
</react_native_1.View>
|
|
1434
1469
|
|
|
1435
|
-
|
|
1470
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle Anonymous Telemetry" accessibilityState={{ checked: telemetryConsent }} onPress={handleToggleTelemetry} style={{
|
|
1436
1471
|
width: 42,
|
|
1437
1472
|
height: 24,
|
|
1438
1473
|
borderRadius: 12,
|
|
@@ -1443,7 +1478,7 @@ const SettingsPanel = () => {
|
|
|
1443
1478
|
justifyContent: 'center',
|
|
1444
1479
|
alignItems: telemetryConsent ? 'flex-end' : 'flex-start',
|
|
1445
1480
|
}}>
|
|
1446
|
-
|
|
1481
|
+
<react_native_1.View style={{
|
|
1447
1482
|
width: 20,
|
|
1448
1483
|
height: 20,
|
|
1449
1484
|
borderRadius: 10,
|
|
@@ -1453,12 +1488,12 @@ const SettingsPanel = () => {
|
|
|
1453
1488
|
shadowRadius: 2,
|
|
1454
1489
|
shadowOffset: { width: 0, height: 1 },
|
|
1455
1490
|
}}/>
|
|
1456
|
-
|
|
1457
|
-
</react_native_1.View>
|
|
1491
|
+
</TouchableScale_1.default>
|
|
1458
1492
|
</react_native_1.View>
|
|
1493
|
+
</react_native_1.View>
|
|
1459
1494
|
|
|
1460
|
-
|
|
1461
|
-
|
|
1495
|
+
{/* Section 5: Notifications & Toasts */}
|
|
1496
|
+
<react_native_1.View style={{
|
|
1462
1497
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1463
1498
|
borderRadius: 14,
|
|
1464
1499
|
borderWidth: 1,
|
|
@@ -1467,29 +1502,29 @@ const SettingsPanel = () => {
|
|
|
1467
1502
|
padding: 14,
|
|
1468
1503
|
gap: 12,
|
|
1469
1504
|
}}>
|
|
1470
|
-
|
|
1505
|
+
<react_native_1.Text style={{
|
|
1471
1506
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1472
1507
|
fontSize: 11,
|
|
1473
1508
|
lineHeight: 14,
|
|
1474
1509
|
color: AppColors_1.AppColors.grayTextWeak,
|
|
1475
1510
|
letterSpacing: 0.8,
|
|
1476
1511
|
}}>
|
|
1477
|
-
|
|
1478
|
-
|
|
1512
|
+
NOTIFICATIONS & TOASTS
|
|
1513
|
+
</react_native_1.Text>
|
|
1479
1514
|
|
|
1480
|
-
|
|
1515
|
+
<react_native_1.View style={{
|
|
1481
1516
|
flexDirection: 'row',
|
|
1482
1517
|
alignItems: 'center',
|
|
1483
1518
|
justifyContent: 'space-between',
|
|
1484
1519
|
}}>
|
|
1485
|
-
|
|
1520
|
+
<react_native_1.View style={{
|
|
1486
1521
|
flexDirection: 'row',
|
|
1487
1522
|
alignItems: 'center',
|
|
1488
1523
|
gap: 10,
|
|
1489
1524
|
flex: 1,
|
|
1490
1525
|
marginRight: 10,
|
|
1491
1526
|
}}>
|
|
1492
|
-
|
|
1527
|
+
<react_native_1.View style={{
|
|
1493
1528
|
width: 32,
|
|
1494
1529
|
height: 32,
|
|
1495
1530
|
borderRadius: 8,
|
|
@@ -1497,30 +1532,31 @@ const SettingsPanel = () => {
|
|
|
1497
1532
|
alignItems: 'center',
|
|
1498
1533
|
justifyContent: 'center',
|
|
1499
1534
|
}}>
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1535
|
+
<NetworkIcons_1.PackageIcon color={AppColors_1.AppColors.purple} size={15}/>
|
|
1536
|
+
</react_native_1.View>
|
|
1537
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1538
|
+
<react_native_1.Text style={{
|
|
1504
1539
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1505
1540
|
fontSize: 13.5,
|
|
1506
1541
|
lineHeight: 18,
|
|
1507
1542
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1508
1543
|
}}>
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1544
|
+
NPM Update Toast
|
|
1545
|
+
</react_native_1.Text>
|
|
1546
|
+
<react_native_1.Text style={{
|
|
1512
1547
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1513
1548
|
fontSize: 11,
|
|
1514
1549
|
lineHeight: 15,
|
|
1515
1550
|
color: AppColors_1.AppColors.grayText,
|
|
1516
1551
|
marginTop: 1,
|
|
1517
1552
|
}}>
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
</react_native_1.
|
|
1553
|
+
Show a floating toast banner with countdown progress when
|
|
1554
|
+
a newer release is published on npm.
|
|
1555
|
+
</react_native_1.Text>
|
|
1521
1556
|
</react_native_1.View>
|
|
1557
|
+
</react_native_1.View>
|
|
1522
1558
|
|
|
1523
|
-
|
|
1559
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="switch" accessibilityLabel="Toggle NPM Update Toast" accessibilityState={{ checked: showUpdateToast }} onPress={() => setShowUpdateToast(prev => !prev)} style={{
|
|
1524
1560
|
width: 42,
|
|
1525
1561
|
height: 24,
|
|
1526
1562
|
borderRadius: 12,
|
|
@@ -1531,7 +1567,7 @@ const SettingsPanel = () => {
|
|
|
1531
1567
|
justifyContent: 'center',
|
|
1532
1568
|
alignItems: showUpdateToast ? 'flex-end' : 'flex-start',
|
|
1533
1569
|
}}>
|
|
1534
|
-
|
|
1570
|
+
<react_native_1.View style={{
|
|
1535
1571
|
width: 20,
|
|
1536
1572
|
height: 20,
|
|
1537
1573
|
borderRadius: 10,
|
|
@@ -1541,15 +1577,137 @@ const SettingsPanel = () => {
|
|
|
1541
1577
|
shadowRadius: 2,
|
|
1542
1578
|
shadowOffset: { width: 0, height: 1 },
|
|
1543
1579
|
}}/>
|
|
1544
|
-
|
|
1580
|
+
</TouchableScale_1.default>
|
|
1581
|
+
</react_native_1.View>
|
|
1582
|
+
</react_native_1.View>
|
|
1583
|
+
|
|
1584
|
+
{/* Section 6: NPM Package & Updates */}
|
|
1585
|
+
<react_native_1.View style={{
|
|
1586
|
+
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
1587
|
+
borderRadius: 14,
|
|
1588
|
+
borderWidth: 1,
|
|
1589
|
+
borderColor: AppColors_1.AppColors.grayBorderSecondary,
|
|
1590
|
+
overflow: 'hidden',
|
|
1591
|
+
padding: 14,
|
|
1592
|
+
gap: 12,
|
|
1593
|
+
}}>
|
|
1594
|
+
<react_native_1.Text style={{
|
|
1595
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1596
|
+
fontSize: 11,
|
|
1597
|
+
lineHeight: 14,
|
|
1598
|
+
color: AppColors_1.AppColors.grayTextWeak,
|
|
1599
|
+
letterSpacing: 0.8,
|
|
1600
|
+
}}>
|
|
1601
|
+
PACKAGE VERSION & UPDATES
|
|
1602
|
+
</react_native_1.Text>
|
|
1603
|
+
|
|
1604
|
+
<react_native_1.View style={{
|
|
1605
|
+
flexDirection: 'row',
|
|
1606
|
+
alignItems: 'center',
|
|
1607
|
+
justifyContent: 'space-between',
|
|
1608
|
+
}}>
|
|
1609
|
+
<react_native_1.View style={{
|
|
1610
|
+
flexDirection: 'row',
|
|
1611
|
+
alignItems: 'center',
|
|
1612
|
+
gap: 10,
|
|
1613
|
+
flex: 1,
|
|
1614
|
+
marginRight: 8,
|
|
1615
|
+
}}>
|
|
1616
|
+
<react_native_1.View style={{
|
|
1617
|
+
width: 32,
|
|
1618
|
+
height: 32,
|
|
1619
|
+
borderRadius: 8,
|
|
1620
|
+
backgroundColor: '#CB383715',
|
|
1621
|
+
alignItems: 'center',
|
|
1622
|
+
justifyContent: 'center',
|
|
1623
|
+
}}>
|
|
1624
|
+
<NetworkIcons_1.NpmIcon color="#CB3837" size={16}/>
|
|
1625
|
+
</react_native_1.View>
|
|
1626
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1627
|
+
<react_native_1.View style={{
|
|
1628
|
+
flexDirection: 'row',
|
|
1629
|
+
alignItems: 'center',
|
|
1630
|
+
gap: 6,
|
|
1631
|
+
}}>
|
|
1632
|
+
<react_native_1.Text style={{
|
|
1633
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1634
|
+
fontSize: 13.5,
|
|
1635
|
+
lineHeight: 18,
|
|
1636
|
+
color: AppColors_1.AppColors.primaryBlack,
|
|
1637
|
+
}}>
|
|
1638
|
+
v{constants_1.LIB_VERSION}
|
|
1639
|
+
</react_native_1.Text>
|
|
1640
|
+
{updateAvailable ? (<react_native_1.View style={{
|
|
1641
|
+
backgroundColor: '#F59E0B20',
|
|
1642
|
+
paddingHorizontal: 6,
|
|
1643
|
+
paddingVertical: 1.5,
|
|
1644
|
+
borderRadius: 5,
|
|
1645
|
+
borderWidth: 1,
|
|
1646
|
+
borderColor: '#F59E0B60',
|
|
1647
|
+
}}>
|
|
1648
|
+
<react_native_1.Text style={{
|
|
1649
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1650
|
+
fontSize: 9.5,
|
|
1651
|
+
color: '#D97706',
|
|
1652
|
+
}}>
|
|
1653
|
+
v{latestNpmVersion} Available ⚡
|
|
1654
|
+
</react_native_1.Text>
|
|
1655
|
+
</react_native_1.View>) : (<react_native_1.View style={{
|
|
1656
|
+
backgroundColor: `${AppColors_1.AppColors.emerald500}20`,
|
|
1657
|
+
paddingHorizontal: 6,
|
|
1658
|
+
paddingVertical: 1.5,
|
|
1659
|
+
borderRadius: 5,
|
|
1660
|
+
borderWidth: 1,
|
|
1661
|
+
borderColor: `${AppColors_1.AppColors.emerald500}50`,
|
|
1662
|
+
}}>
|
|
1663
|
+
<react_native_1.Text style={{
|
|
1664
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1665
|
+
fontSize: 9.5,
|
|
1666
|
+
color: AppColors_1.AppColors.emerald600,
|
|
1667
|
+
}}>
|
|
1668
|
+
Up to date
|
|
1669
|
+
</react_native_1.Text>
|
|
1670
|
+
</react_native_1.View>)}
|
|
1671
|
+
</react_native_1.View>
|
|
1672
|
+
<react_native_1.Text style={{
|
|
1673
|
+
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1674
|
+
fontSize: 11,
|
|
1675
|
+
lineHeight: 15,
|
|
1676
|
+
color: AppColors_1.AppColors.grayText,
|
|
1677
|
+
marginTop: 1,
|
|
1678
|
+
}}>
|
|
1679
|
+
{updateAvailable
|
|
1680
|
+
? `A newer version (v${latestNpmVersion}) is available on npm registry.`
|
|
1681
|
+
: 'You are running the latest version from npm registry.'}
|
|
1682
|
+
</react_native_1.Text>
|
|
1683
|
+
</react_native_1.View>
|
|
1545
1684
|
</react_native_1.View>
|
|
1685
|
+
|
|
1686
|
+
{updateAvailable && (<TouchableScale_1.default onPress={() => {
|
|
1687
|
+
(0, helpers_1.copyToClipboard)('npm install react-native-inapp-inspector@latest', 'Install Command');
|
|
1688
|
+
(0, toast_1.showToast)('Copied npm install command!');
|
|
1689
|
+
}} style={{
|
|
1690
|
+
backgroundColor: AppColors_1.AppColors.purple,
|
|
1691
|
+
paddingVertical: 6,
|
|
1692
|
+
paddingHorizontal: 10,
|
|
1693
|
+
borderRadius: 8,
|
|
1694
|
+
}}>
|
|
1695
|
+
<react_native_1.Text style={{
|
|
1696
|
+
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1697
|
+
fontSize: 11,
|
|
1698
|
+
color: AppColors_1.AppColors.white,
|
|
1699
|
+
}}>
|
|
1700
|
+
Copy Upgrade
|
|
1701
|
+
</react_native_1.Text>
|
|
1702
|
+
</TouchableScale_1.default>)}
|
|
1546
1703
|
</react_native_1.View>
|
|
1547
|
-
</react_native_1.View>
|
|
1548
|
-
|
|
1549
|
-
|
|
1704
|
+
</react_native_1.View>
|
|
1705
|
+
</react_native_1.View>)}
|
|
1706
|
+
<react_native_1.View style={{ height: 48 }}/>
|
|
1707
|
+
</react_native_1.ScrollView>
|
|
1550
1708
|
|
|
1551
|
-
|
|
1552
|
-
|
|
1709
|
+
{/* Bottom Sticky Action Bar for Save Changes */}
|
|
1710
|
+
{settingsActiveSubTab === 'module' && (<react_native_1.View style={{
|
|
1553
1711
|
paddingHorizontal: 16,
|
|
1554
1712
|
paddingTop: 12,
|
|
1555
1713
|
paddingBottom: react_native_1.Platform.OS === 'ios' ? 36 : 24,
|
|
@@ -1565,16 +1723,16 @@ const SettingsPanel = () => {
|
|
|
1565
1723
|
shadowOffset: { width: 0, height: -3 },
|
|
1566
1724
|
elevation: 8,
|
|
1567
1725
|
}}>
|
|
1568
|
-
|
|
1569
|
-
|
|
1726
|
+
<react_native_1.View style={{ flex: 1 }}>
|
|
1727
|
+
<react_native_1.Text style={{
|
|
1570
1728
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1571
1729
|
fontSize: 13,
|
|
1572
1730
|
lineHeight: 17,
|
|
1573
1731
|
color: AppColors_1.AppColors.primaryBlack,
|
|
1574
1732
|
}}>
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1733
|
+
{stagedActiveCount} of {allModules.length} Modules Active
|
|
1734
|
+
</react_native_1.Text>
|
|
1735
|
+
<react_native_1.Text style={{
|
|
1578
1736
|
fontFamily: AppFonts_1.AppFonts.interRegular,
|
|
1579
1737
|
fontSize: 11,
|
|
1580
1738
|
lineHeight: 15,
|
|
@@ -1583,13 +1741,13 @@ const SettingsPanel = () => {
|
|
|
1583
1741
|
: AppColors_1.AppColors.grayText,
|
|
1584
1742
|
marginTop: 1,
|
|
1585
1743
|
}}>
|
|
1586
|
-
|
|
1744
|
+
{hasUnsavedChanges
|
|
1587
1745
|
? t('settings.unsavedPending')
|
|
1588
1746
|
: t('settings.allSynchronized')}
|
|
1589
|
-
|
|
1590
|
-
|
|
1747
|
+
</react_native_1.Text>
|
|
1748
|
+
</react_native_1.View>
|
|
1591
1749
|
|
|
1592
|
-
|
|
1750
|
+
<TouchableScale_1.default accessible={true} accessibilityRole="button" accessibilityLabel="Save Changes" onPress={handleSaveChanges} style={{
|
|
1593
1751
|
flexDirection: 'row',
|
|
1594
1752
|
alignItems: 'center',
|
|
1595
1753
|
gap: 6,
|
|
@@ -1600,18 +1758,18 @@ const SettingsPanel = () => {
|
|
|
1600
1758
|
paddingVertical: 10,
|
|
1601
1759
|
borderRadius: 10,
|
|
1602
1760
|
}}>
|
|
1603
|
-
|
|
1604
|
-
|
|
1761
|
+
<NetworkIcons_1.CheckIcon size={14} color={hasUnsavedChanges ? AppColors_1.AppColors.white : AppColors_1.AppColors.purple}/>
|
|
1762
|
+
<react_native_1.Text style={{
|
|
1605
1763
|
fontFamily: AppFonts_1.AppFonts.interBold,
|
|
1606
1764
|
fontSize: 13,
|
|
1607
1765
|
lineHeight: 17,
|
|
1608
1766
|
color: hasUnsavedChanges ? AppColors_1.AppColors.white : AppColors_1.AppColors.purple,
|
|
1609
1767
|
}}>
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1768
|
+
{t('settings.saveChanges')}
|
|
1769
|
+
</react_native_1.Text>
|
|
1770
|
+
</TouchableScale_1.default>
|
|
1771
|
+
</react_native_1.View>)}
|
|
1772
|
+
</react_native_1.View>);
|
|
1615
1773
|
let content = null;
|
|
1616
1774
|
let title = '';
|
|
1617
1775
|
let icon = null;
|
|
@@ -1653,7 +1811,9 @@ const SettingsPanel = () => {
|
|
|
1653
1811
|
{renderSettingRow({
|
|
1654
1812
|
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1655
1813
|
label: t('settings.apis.clearNetworkLogs'),
|
|
1656
|
-
description: t('settings.apis.clearNetworkLogsDescription', {
|
|
1814
|
+
description: t('settings.apis.clearNetworkLogsDescription', {
|
|
1815
|
+
count: logs.length,
|
|
1816
|
+
}),
|
|
1657
1817
|
isLast: true,
|
|
1658
1818
|
onPress: () => {
|
|
1659
1819
|
(0, networkLogger_1.clearNetworkLogs)();
|
|
@@ -1840,9 +2000,7 @@ const SettingsPanel = () => {
|
|
|
1840
2000
|
: AppColors_1.AppColors.grayBorderSecondary,
|
|
1841
2001
|
padding: 2,
|
|
1842
2002
|
justifyContent: 'center',
|
|
1843
|
-
alignItems: showDuplicateLogs
|
|
1844
|
-
? 'flex-end'
|
|
1845
|
-
: 'flex-start',
|
|
2003
|
+
alignItems: showDuplicateLogs ? 'flex-end' : 'flex-start',
|
|
1846
2004
|
}}>
|
|
1847
2005
|
<react_native_1.View style={{
|
|
1848
2006
|
width: 20,
|
|
@@ -1868,7 +2026,9 @@ const SettingsPanel = () => {
|
|
|
1868
2026
|
{renderSettingRow({
|
|
1869
2027
|
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
1870
2028
|
label: t('settings.logs.clearConsoleLogs'),
|
|
1871
|
-
description: t('settings.logs.clearConsoleLogsDescription', {
|
|
2029
|
+
description: t('settings.logs.clearConsoleLogsDescription', {
|
|
2030
|
+
count: consoleLogs.length,
|
|
2031
|
+
}),
|
|
1872
2032
|
isLast: true,
|
|
1873
2033
|
onPress: () => {
|
|
1874
2034
|
(0, consoleLogger_1.clearConsoleLogs)();
|
|
@@ -1911,7 +2071,9 @@ const SettingsPanel = () => {
|
|
|
1911
2071
|
{renderSettingRow({
|
|
1912
2072
|
icon: <NetworkIcons_1.AnalyticsIcon color={AppColors_1.AppColors.purple} size={16}/>,
|
|
1913
2073
|
label: t('settings.analytics.maxAnalyticsEvents'),
|
|
1914
|
-
description: t('settings.analytics.maxAnalyticsEventsDescription', {
|
|
2074
|
+
description: t('settings.analytics.maxAnalyticsEventsDescription', {
|
|
2075
|
+
count: analyticsEvents.length,
|
|
2076
|
+
}),
|
|
1915
2077
|
numericInput: {
|
|
1916
2078
|
value: maxAnalyticsEventsLimit,
|
|
1917
2079
|
onChange: setMaxAnalyticsEventsLimit,
|
|
@@ -1964,7 +2126,9 @@ const SettingsPanel = () => {
|
|
|
1964
2126
|
else if (settingsPage === 'redux') {
|
|
1965
2127
|
title = t('settings.redux.title');
|
|
1966
2128
|
icon = <NetworkIcons_1.ReduxIcon color={AppColors_1.AppColors.white} size={16}/>;
|
|
1967
|
-
rightInfo = t('settings.redux.reducers', {
|
|
2129
|
+
rightInfo = t('settings.redux.reducers', {
|
|
2130
|
+
count: Object.keys(reduxState || {}).length,
|
|
2131
|
+
});
|
|
1968
2132
|
content = (<react_native_1.ScrollView style={{ flex: 1 }} contentContainerStyle={{ padding: 16, paddingBottom: 100, gap: 12 }}>
|
|
1969
2133
|
<react_native_1.View style={{
|
|
1970
2134
|
backgroundColor: AppColors_1.AppColors.primaryLight,
|
|
@@ -2109,7 +2273,9 @@ const SettingsPanel = () => {
|
|
|
2109
2273
|
{renderSettingRow({
|
|
2110
2274
|
icon: <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor} size={16}/>,
|
|
2111
2275
|
label: t('settings.crash.clearHistory'),
|
|
2112
|
-
description: t('settings.crash.clearHistoryDesc', {
|
|
2276
|
+
description: t('settings.crash.clearHistoryDesc', {
|
|
2277
|
+
count: crashRecords?.length || 0,
|
|
2278
|
+
}),
|
|
2113
2279
|
isLast: true,
|
|
2114
2280
|
onPress: () => {
|
|
2115
2281
|
(0, crashHandler_1.clearCrashRecords)();
|