@oxyhq/services 6.9.27 → 6.9.29
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/lib/commonjs/ui/components/SettingsIcon.js +45 -0
- package/lib/commonjs/ui/components/SettingsIcon.js.map +1 -0
- package/lib/commonjs/ui/components/index.js +7 -0
- package/lib/commonjs/ui/components/index.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +127 -126
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +203 -191
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +209 -205
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HelpSupportScreen.js +66 -63
- package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/module/ui/components/SettingsIcon.js +40 -0
- package/lib/module/ui/components/SettingsIcon.js.map +1 -0
- package/lib/module/ui/components/index.js +1 -0
- package/lib/module/ui/components/index.js.map +1 -1
- package/lib/module/ui/screens/AccountCenterScreen.js +127 -126
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +204 -192
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +210 -206
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/HelpSupportScreen.js +67 -64
- package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts +14 -0
- package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/index.d.ts +1 -0
- package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SettingsIcon.d.ts +14 -0
- package/lib/typescript/module/ui/components/SettingsIcon.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/index.d.ts +1 -0
- package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ui/components/SettingsIcon.tsx +43 -0
- package/src/ui/components/index.ts +1 -0
- package/src/ui/screens/AccountCenterScreen.tsx +97 -145
- package/src/ui/screens/AccountOverviewScreen.tsx +154 -220
- package/src/ui/screens/AppInfoScreen.tsx +177 -248
- package/src/ui/screens/HelpSupportScreen.tsx +53 -76
|
@@ -21,6 +21,7 @@ import { toast } from '../../lib/sonner';
|
|
|
21
21
|
import { confirmAction } from '../utils/confirmAction';
|
|
22
22
|
import { Ionicons } from '@expo/vector-icons';
|
|
23
23
|
import { Section, GroupedSection, GroupedItem } from '../components';
|
|
24
|
+
import { SettingsIcon } from '../components/SettingsIcon';
|
|
24
25
|
import { useI18n } from '../hooks/useI18n';
|
|
25
26
|
import { useThemeStyles } from '../hooks/useThemeStyles';
|
|
26
27
|
import { getDisplayName, getShortDisplayName } from '../utils/userUtils';
|
|
@@ -35,6 +36,7 @@ import {
|
|
|
35
36
|
createScreenContentStyle,
|
|
36
37
|
} from '../constants/spacing';
|
|
37
38
|
import { DeleteAccountModal } from '../components/modals';
|
|
39
|
+
import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
|
|
38
40
|
|
|
39
41
|
// Optional Lottie import - gracefully handle if not available
|
|
40
42
|
let LottieView: any = null;
|
|
@@ -56,13 +58,13 @@ try {
|
|
|
56
58
|
|
|
57
59
|
/**
|
|
58
60
|
* AccountOverviewScreen - Optimized for performance
|
|
59
|
-
*
|
|
61
|
+
*
|
|
60
62
|
* Performance optimizations implemented:
|
|
61
63
|
* - useMemo for theme calculations (only recalculates when theme changes)
|
|
62
64
|
* - useMemo for additional accounts filtering (only recalculates when dependencies change)
|
|
63
65
|
* - useCallback for event handlers to prevent unnecessary re-renders
|
|
64
66
|
* - React.memo wrapper to prevent re-renders when props haven't changed
|
|
65
|
-
* -
|
|
67
|
+
* - SettingsListGroup/SettingsListItem from bloom for consistent grouped list rendering
|
|
66
68
|
*/
|
|
67
69
|
const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
68
70
|
onClose,
|
|
@@ -139,8 +141,8 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
139
141
|
|
|
140
142
|
// Load user profiles for additional accounts using TanStack Query
|
|
141
143
|
const sessionIds = additionalAccounts.map(s => s.sessionId);
|
|
142
|
-
const { data: usersData, isLoading: isLoadingUsers } = useUsersBySessions(sessionIds, {
|
|
143
|
-
enabled: additionalAccounts.length > 0
|
|
144
|
+
const { data: usersData, isLoading: isLoadingUsers } = useUsersBySessions(sessionIds, {
|
|
145
|
+
enabled: additionalAccounts.length > 0
|
|
144
146
|
});
|
|
145
147
|
|
|
146
148
|
React.useEffect(() => {
|
|
@@ -380,71 +382,52 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
380
382
|
)}
|
|
381
383
|
|
|
382
384
|
{/* User Profile Section */}
|
|
383
|
-
<
|
|
384
|
-
<
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
iconColor: baseThemeStyles.colors.iconSecurity,
|
|
390
|
-
title: displayName,
|
|
391
|
-
subtitle: user ? (user.email || user.username) : (t('common.status.loading') || 'Loading...'),
|
|
392
|
-
onPress: () => navigate?.('AccountSettings', { activeTab: 'profile' }),
|
|
393
|
-
},
|
|
394
|
-
]}
|
|
385
|
+
<SettingsListGroup title={t('accountOverview.sections.profile')}>
|
|
386
|
+
<SettingsListItem
|
|
387
|
+
icon={<SettingsIcon name="account" color={baseThemeStyles.colors.iconSecurity} />}
|
|
388
|
+
title={displayName}
|
|
389
|
+
description={user ? (user.email || user.username) : (t('common.status.loading') || 'Loading...')}
|
|
390
|
+
onPress={() => navigate?.('AccountSettings', { activeTab: 'profile' })}
|
|
395
391
|
/>
|
|
396
|
-
</
|
|
392
|
+
</SettingsListGroup>
|
|
397
393
|
|
|
398
394
|
{/* Account Settings */}
|
|
399
|
-
<
|
|
400
|
-
<
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
},
|
|
418
|
-
{
|
|
419
|
-
id: 'notifications',
|
|
420
|
-
icon: 'bell',
|
|
421
|
-
iconColor: baseThemeStyles.colors.iconStorage,
|
|
422
|
-
title: t('accountOverview.items.notifications.title'),
|
|
423
|
-
subtitle: t('accountOverview.items.notifications.subtitle'),
|
|
424
|
-
onPress: () => navigate?.('AccountSettings', { activeTab: 'notifications' }),
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
id: 'premium-subscription',
|
|
428
|
-
icon: 'star',
|
|
429
|
-
iconColor: baseThemeStyles.colors.iconPayments,
|
|
430
|
-
title: t('accountOverview.items.premium.title'),
|
|
431
|
-
subtitle: user?.isPremium ? t('accountOverview.items.premium.manage') : t('accountOverview.items.premium.upgrade'),
|
|
432
|
-
onPress: () => navigate?.('PremiumSubscription'),
|
|
433
|
-
},
|
|
434
|
-
...(user?.isPremium ? [{
|
|
435
|
-
id: 'billing-management',
|
|
436
|
-
icon: 'card',
|
|
437
|
-
iconColor: baseThemeStyles.colors.iconPersonalInfo,
|
|
438
|
-
title: t('accountOverview.items.billing.title'),
|
|
439
|
-
subtitle: t('accountOverview.items.billing.subtitle'),
|
|
440
|
-
onPress: () => toast.info(t('accountOverview.items.billing.coming')),
|
|
441
|
-
}] : []),
|
|
442
|
-
]}
|
|
443
|
-
|
|
395
|
+
<SettingsListGroup title={t('accountOverview.sections.accountSettings')}>
|
|
396
|
+
<SettingsListItem
|
|
397
|
+
icon={<SettingsIcon name="account-circle" color={baseThemeStyles.colors.iconPersonalInfo} />}
|
|
398
|
+
title={t('accountOverview.items.editProfile.title')}
|
|
399
|
+
description={t('accountOverview.items.editProfile.subtitle')}
|
|
400
|
+
onPress={() => navigate?.('AccountSettings', { activeTab: 'profile' })}
|
|
401
|
+
/>
|
|
402
|
+
<SettingsListItem
|
|
403
|
+
icon={<SettingsIcon name="shield-check" color={baseThemeStyles.colors.iconSecurity} />}
|
|
404
|
+
title={t('accountOverview.items.security.title')}
|
|
405
|
+
description={t('accountOverview.items.security.subtitle')}
|
|
406
|
+
onPress={() => navigate?.('AccountSettings', { activeTab: 'password' })}
|
|
407
|
+
/>
|
|
408
|
+
<SettingsListItem
|
|
409
|
+
icon={<SettingsIcon name="bell" color={baseThemeStyles.colors.iconStorage} />}
|
|
410
|
+
title={t('accountOverview.items.notifications.title')}
|
|
411
|
+
description={t('accountOverview.items.notifications.subtitle')}
|
|
412
|
+
onPress={() => navigate?.('AccountSettings', { activeTab: 'notifications' })}
|
|
444
413
|
/>
|
|
445
|
-
|
|
414
|
+
<SettingsListItem
|
|
415
|
+
icon={<SettingsIcon name="star" color={baseThemeStyles.colors.iconPayments} />}
|
|
416
|
+
title={t('accountOverview.items.premium.title')}
|
|
417
|
+
description={user?.isPremium ? t('accountOverview.items.premium.manage') : t('accountOverview.items.premium.upgrade')}
|
|
418
|
+
onPress={() => navigate?.('PremiumSubscription')}
|
|
419
|
+
/>
|
|
420
|
+
{user?.isPremium ? (
|
|
421
|
+
<SettingsListItem
|
|
422
|
+
icon={<SettingsIcon name="credit-card" color={baseThemeStyles.colors.iconPersonalInfo} />}
|
|
423
|
+
title={t('accountOverview.items.billing.title')}
|
|
424
|
+
description={t('accountOverview.items.billing.subtitle')}
|
|
425
|
+
onPress={() => toast.info(t('accountOverview.items.billing.coming'))}
|
|
426
|
+
/>
|
|
427
|
+
) : null}
|
|
428
|
+
</SettingsListGroup>
|
|
446
429
|
|
|
447
|
-
{/* Additional Accounts */}
|
|
430
|
+
{/* Additional Accounts - kept with GroupedSection due to custom avatar content */}
|
|
448
431
|
{showMoreAccounts && (
|
|
449
432
|
<Section title={`${t('accountOverview.sections.additionalAccounts') || 'Additional Accounts'}${additionalAccountsData.length > 0 ? ` (${additionalAccountsData.length})` : ''}`} >
|
|
450
433
|
{loadingAdditionalAccounts ? (
|
|
@@ -520,175 +503,127 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
520
503
|
|
|
521
504
|
{/* Account Management */}
|
|
522
505
|
{showMoreAccounts && (
|
|
523
|
-
<
|
|
524
|
-
<
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
iconColor: baseThemeStyles.colors.iconSecurity,
|
|
530
|
-
title: t('accountOverview.items.addAccount.title') || 'Add Another Account',
|
|
531
|
-
subtitle: t('accountOverview.items.addAccount.subtitle') || 'Sign in with a different account',
|
|
532
|
-
onPress: handleAddAccount,
|
|
533
|
-
},
|
|
534
|
-
{
|
|
535
|
-
id: 'sign-out-all',
|
|
536
|
-
icon: 'logout',
|
|
537
|
-
iconColor: baseThemeStyles.colors.iconSharing,
|
|
538
|
-
title: t('accountOverview.items.signOutAll.title') || 'Sign out of all accounts',
|
|
539
|
-
subtitle: t('accountOverview.items.signOutAll.subtitle') || 'Remove all accounts from this device',
|
|
540
|
-
onPress: handleSignOutAll,
|
|
541
|
-
},
|
|
542
|
-
]}
|
|
543
|
-
|
|
506
|
+
<SettingsListGroup title={t('accountOverview.sections.accountManagement') || 'Account Management'}>
|
|
507
|
+
<SettingsListItem
|
|
508
|
+
icon={<SettingsIcon name="plus" color={baseThemeStyles.colors.iconSecurity} />}
|
|
509
|
+
title={t('accountOverview.items.addAccount.title') || 'Add Another Account'}
|
|
510
|
+
description={t('accountOverview.items.addAccount.subtitle') || 'Sign in with a different account'}
|
|
511
|
+
onPress={handleAddAccount}
|
|
544
512
|
/>
|
|
545
|
-
|
|
513
|
+
<SettingsListItem
|
|
514
|
+
icon={<SettingsIcon name="logout" color={baseThemeStyles.colors.iconSharing} />}
|
|
515
|
+
title={t('accountOverview.items.signOutAll.title') || 'Sign out of all accounts'}
|
|
516
|
+
description={t('accountOverview.items.signOutAll.subtitle') || 'Remove all accounts from this device'}
|
|
517
|
+
onPress={handleSignOutAll}
|
|
518
|
+
/>
|
|
519
|
+
</SettingsListGroup>
|
|
546
520
|
)}
|
|
547
521
|
|
|
548
522
|
{/* Quick Actions */}
|
|
549
|
-
<
|
|
550
|
-
<
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
? t('accountOverview.items.accountSwitcher.
|
|
561
|
-
:
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
},
|
|
576
|
-
{
|
|
577
|
-
id: 'saves-collections',
|
|
578
|
-
icon: 'bookmark',
|
|
579
|
-
iconColor: baseThemeStyles.colors.iconStorage,
|
|
580
|
-
title: t('accountOverview.items.saves.title') || 'Saves & Collections',
|
|
581
|
-
subtitle: t('accountOverview.items.saves.subtitle') || 'View your saved items and collections',
|
|
582
|
-
onPress: () => navigate?.('SavesCollections'),
|
|
583
|
-
},
|
|
584
|
-
{
|
|
585
|
-
id: 'download-data',
|
|
586
|
-
icon: 'download',
|
|
587
|
-
iconColor: baseThemeStyles.colors.iconPersonalInfo,
|
|
588
|
-
title: t('accountOverview.items.downloadData.title'),
|
|
589
|
-
subtitle: t('accountOverview.items.downloadData.subtitle'),
|
|
590
|
-
onPress: handleDownloadData,
|
|
591
|
-
},
|
|
592
|
-
{
|
|
593
|
-
id: 'delete-account',
|
|
594
|
-
icon: 'delete',
|
|
595
|
-
iconColor: baseThemeStyles.colors.iconSharing,
|
|
596
|
-
title: t('accountOverview.items.deleteAccount.title'),
|
|
597
|
-
subtitle: t('accountOverview.items.deleteAccount.subtitle'),
|
|
598
|
-
onPress: handleDeleteAccount,
|
|
599
|
-
},
|
|
600
|
-
]}
|
|
601
|
-
|
|
523
|
+
<SettingsListGroup title={t('accountOverview.sections.quickActions')}>
|
|
524
|
+
<SettingsListItem
|
|
525
|
+
icon={<SettingsIcon name="account-group" color={baseThemeStyles.colors.iconData} />}
|
|
526
|
+
title={showMoreAccounts
|
|
527
|
+
? t('accountOverview.items.accountSwitcher.titleHide')
|
|
528
|
+
: t('accountOverview.items.accountSwitcher.titleShow')}
|
|
529
|
+
description={showMoreAccounts
|
|
530
|
+
? t('accountOverview.items.accountSwitcher.subtitleHide')
|
|
531
|
+
: additionalAccountsData.length > 0
|
|
532
|
+
? t('accountOverview.items.accountSwitcher.subtitleSwitchBetween', { count: String(additionalAccountsData.length + 1) })
|
|
533
|
+
: loadingAdditionalAccounts
|
|
534
|
+
? t('accountOverview.items.accountSwitcher.subtitleLoading')
|
|
535
|
+
: t('accountOverview.items.accountSwitcher.subtitleManageMultiple')}
|
|
536
|
+
onPress={() => setShowMoreAccounts(!showMoreAccounts)}
|
|
537
|
+
/>
|
|
538
|
+
<SettingsListItem
|
|
539
|
+
icon={<SettingsIcon name="clock" color={baseThemeStyles.colors.iconSecurity} />}
|
|
540
|
+
title={t('accountOverview.items.history.title') || 'History'}
|
|
541
|
+
description={t('accountOverview.items.history.subtitle') || 'View and manage your search history'}
|
|
542
|
+
onPress={() => navigate?.('HistoryView')}
|
|
543
|
+
/>
|
|
544
|
+
<SettingsListItem
|
|
545
|
+
icon={<SettingsIcon name="bookmark" color={baseThemeStyles.colors.iconStorage} />}
|
|
546
|
+
title={t('accountOverview.items.saves.title') || 'Saves & Collections'}
|
|
547
|
+
description={t('accountOverview.items.saves.subtitle') || 'View your saved items and collections'}
|
|
548
|
+
onPress={() => navigate?.('SavesCollections')}
|
|
602
549
|
/>
|
|
603
|
-
|
|
550
|
+
<SettingsListItem
|
|
551
|
+
icon={<SettingsIcon name="download" color={baseThemeStyles.colors.iconPersonalInfo} />}
|
|
552
|
+
title={t('accountOverview.items.downloadData.title')}
|
|
553
|
+
description={t('accountOverview.items.downloadData.subtitle')}
|
|
554
|
+
onPress={handleDownloadData}
|
|
555
|
+
/>
|
|
556
|
+
<SettingsListItem
|
|
557
|
+
icon={<SettingsIcon name="delete" color={baseThemeStyles.colors.iconSharing} />}
|
|
558
|
+
title={t('accountOverview.items.deleteAccount.title')}
|
|
559
|
+
description={t('accountOverview.items.deleteAccount.subtitle')}
|
|
560
|
+
onPress={handleDeleteAccount}
|
|
561
|
+
/>
|
|
562
|
+
</SettingsListGroup>
|
|
604
563
|
|
|
605
564
|
{/* Support & Settings */}
|
|
606
|
-
<
|
|
607
|
-
<
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
subtitle: t('accountOverview.items.preferences.subtitle'),
|
|
631
|
-
onPress: () => toast.info(t('accountOverview.items.preferences.coming')),
|
|
632
|
-
},
|
|
633
|
-
{
|
|
634
|
-
id: 'help-support',
|
|
635
|
-
icon: 'help-circle',
|
|
636
|
-
iconColor: baseThemeStyles.colors.iconSecurity,
|
|
637
|
-
title: t('accountOverview.items.help.title'),
|
|
638
|
-
subtitle: t('accountOverview.items.help.subtitle'),
|
|
639
|
-
onPress: () => navigate?.('HelpSupport'),
|
|
640
|
-
},
|
|
641
|
-
{
|
|
642
|
-
id: 'privacy-policy',
|
|
643
|
-
icon: 'shield-check',
|
|
644
|
-
iconColor: baseThemeStyles.colors.iconPersonalInfo,
|
|
645
|
-
title: t('accountOverview.items.privacyPolicy.title') || 'Privacy Policy',
|
|
646
|
-
subtitle: t('accountOverview.items.privacyPolicy.subtitle') || 'How we handle your data',
|
|
647
|
-
onPress: () => navigate?.('LegalDocuments', { initialStep: 1 }),
|
|
648
|
-
},
|
|
649
|
-
{
|
|
650
|
-
id: 'terms-of-service',
|
|
651
|
-
icon: 'file-document',
|
|
652
|
-
iconColor: baseThemeStyles.colors.iconSecurity,
|
|
653
|
-
title: t('accountOverview.items.termsOfService.title') || 'Terms of Service',
|
|
654
|
-
subtitle: t('accountOverview.items.termsOfService.subtitle') || 'Terms and conditions of use',
|
|
655
|
-
onPress: () => navigate?.('LegalDocuments', { initialStep: 2 }),
|
|
656
|
-
},
|
|
657
|
-
{
|
|
658
|
-
id: 'connected-apps',
|
|
659
|
-
icon: 'link',
|
|
660
|
-
iconColor: baseThemeStyles.colors.iconPersonalInfo,
|
|
661
|
-
title: t('accountOverview.items.connectedApps.title'),
|
|
662
|
-
subtitle: t('accountOverview.items.connectedApps.subtitle'),
|
|
663
|
-
onPress: () => toast.info(t('accountOverview.items.connectedApps.coming')),
|
|
664
|
-
},
|
|
665
|
-
{
|
|
666
|
-
id: 'about',
|
|
667
|
-
icon: 'information',
|
|
668
|
-
iconColor: '#8E8E93',
|
|
669
|
-
title: t('accountOverview.items.about.title'),
|
|
670
|
-
subtitle: t('accountOverview.items.about.subtitle'),
|
|
671
|
-
onPress: () => navigate?.('AppInfo'),
|
|
672
|
-
},
|
|
673
|
-
]}
|
|
674
|
-
|
|
565
|
+
<SettingsListGroup title={t('accountOverview.sections.support')}>
|
|
566
|
+
<SettingsListItem
|
|
567
|
+
icon={<SettingsIcon name="magnify" color={baseThemeStyles.colors.iconSecurity} />}
|
|
568
|
+
title={t('accountOverview.items.searchSettings.title') || 'Search Settings'}
|
|
569
|
+
description={t('accountOverview.items.searchSettings.subtitle') || 'SafeSearch and personalization'}
|
|
570
|
+
onPress={() => navigate?.('SearchSettings')}
|
|
571
|
+
/>
|
|
572
|
+
<SettingsListItem
|
|
573
|
+
icon={<SettingsIcon name="translate" color={baseThemeStyles.colors.iconPersonalInfo} />}
|
|
574
|
+
title={t('accountOverview.items.language.title') || 'Language'}
|
|
575
|
+
description={t('accountOverview.items.language.subtitle') || 'Choose your preferred language'}
|
|
576
|
+
onPress={() => navigate?.('LanguageSelector')}
|
|
577
|
+
/>
|
|
578
|
+
<SettingsListItem
|
|
579
|
+
icon={<SettingsIcon name="cog" color="#8E8E93" />}
|
|
580
|
+
title={t('accountOverview.items.preferences.title')}
|
|
581
|
+
description={t('accountOverview.items.preferences.subtitle')}
|
|
582
|
+
onPress={() => toast.info(t('accountOverview.items.preferences.coming'))}
|
|
583
|
+
/>
|
|
584
|
+
<SettingsListItem
|
|
585
|
+
icon={<SettingsIcon name="help-circle" color={baseThemeStyles.colors.iconSecurity} />}
|
|
586
|
+
title={t('accountOverview.items.help.title')}
|
|
587
|
+
description={t('accountOverview.items.help.subtitle')}
|
|
588
|
+
onPress={() => navigate?.('HelpSupport')}
|
|
675
589
|
/>
|
|
676
|
-
|
|
590
|
+
<SettingsListItem
|
|
591
|
+
icon={<SettingsIcon name="shield-check" color={baseThemeStyles.colors.iconPersonalInfo} />}
|
|
592
|
+
title={t('accountOverview.items.privacyPolicy.title') || 'Privacy Policy'}
|
|
593
|
+
description={t('accountOverview.items.privacyPolicy.subtitle') || 'How we handle your data'}
|
|
594
|
+
onPress={() => navigate?.('LegalDocuments', { initialStep: 1 })}
|
|
595
|
+
/>
|
|
596
|
+
<SettingsListItem
|
|
597
|
+
icon={<SettingsIcon name="file-document" color={baseThemeStyles.colors.iconSecurity} />}
|
|
598
|
+
title={t('accountOverview.items.termsOfService.title') || 'Terms of Service'}
|
|
599
|
+
description={t('accountOverview.items.termsOfService.subtitle') || 'Terms and conditions of use'}
|
|
600
|
+
onPress={() => navigate?.('LegalDocuments', { initialStep: 2 })}
|
|
601
|
+
/>
|
|
602
|
+
<SettingsListItem
|
|
603
|
+
icon={<SettingsIcon name="link" color={baseThemeStyles.colors.iconPersonalInfo} />}
|
|
604
|
+
title={t('accountOverview.items.connectedApps.title')}
|
|
605
|
+
description={t('accountOverview.items.connectedApps.subtitle')}
|
|
606
|
+
onPress={() => toast.info(t('accountOverview.items.connectedApps.coming'))}
|
|
607
|
+
/>
|
|
608
|
+
<SettingsListItem
|
|
609
|
+
icon={<SettingsIcon name="information" color="#8E8E93" />}
|
|
610
|
+
title={t('accountOverview.items.about.title')}
|
|
611
|
+
description={t('accountOverview.items.about.subtitle')}
|
|
612
|
+
onPress={() => navigate?.('AppInfo')}
|
|
613
|
+
/>
|
|
614
|
+
</SettingsListGroup>
|
|
677
615
|
|
|
678
616
|
{/* Sign Out */}
|
|
679
|
-
<
|
|
680
|
-
<
|
|
681
|
-
icon="logout"
|
|
682
|
-
iconColor="#FF3B30"
|
|
617
|
+
<SettingsListGroup title={t('accountOverview.sections.actions')}>
|
|
618
|
+
<SettingsListItem
|
|
619
|
+
icon={<SettingsIcon name="logout" color="#FF3B30" />}
|
|
683
620
|
title={t('accountOverview.items.signOut.title')}
|
|
684
|
-
|
|
685
|
-
|
|
621
|
+
description={t('accountOverview.items.signOut.subtitle')}
|
|
686
622
|
onPress={confirmLogout}
|
|
687
|
-
|
|
688
|
-
isLast={true}
|
|
623
|
+
destructive={true}
|
|
689
624
|
showChevron={false}
|
|
690
625
|
/>
|
|
691
|
-
</
|
|
626
|
+
</SettingsListGroup>
|
|
692
627
|
</ScrollView>
|
|
693
628
|
|
|
694
629
|
{/* Delete Account Modal */}
|
|
@@ -781,7 +716,6 @@ const styles = StyleSheet.create({
|
|
|
781
716
|
paddingHorizontal: 16,
|
|
782
717
|
paddingVertical: 8,
|
|
783
718
|
borderRadius: 16,
|
|
784
|
-
// backgroundColor should be applied inline using colors.iconSecurity
|
|
785
719
|
},
|
|
786
720
|
manageButtonText: {
|
|
787
721
|
color: '#fff',
|