import { ScrollView, View, Text, Pressable, Platform } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; import { useRouter } from 'expo-router'; import { Ionicons } from '@expo/vector-icons'; import { useTranslation } from 'react-i18next'; import { colors } from '../lib/theme'; type SectionRow = { icon: React.ComponentProps['name']; iconColor: string; label: string; sublabel: string; }; type Section = { key: string; title: string; rows: SectionRow[]; }; export default function SettingsScreen() { const router = useRouter(); const { t } = useTranslation(); const sections: Section[] = [ { key: 'profile', title: t('settings.section_profile'), rows: [ { icon: 'person-outline', iconColor: '#6366f1', label: t('settings.profile_edit'), sublabel: t('settings.profile_edit_desc'), }, { icon: 'image-outline', iconColor: '#6366f1', label: t('settings.profile_avatar'), sublabel: t('settings.profile_avatar_desc'), }, ], }, { key: 'theme', title: t('settings.section_theme'), rows: [ { icon: 'color-palette-outline', iconColor: '#a78bfa', label: t('settings.theme'), sublabel: t('settings.theme_desc'), }, { icon: 'language-outline', iconColor: '#a78bfa', label: t('settings.language'), sublabel: t('settings.language_desc'), }, ], }, { key: 'notifications', title: t('settings.section_notifications'), rows: [ { icon: 'notifications-outline', iconColor: '#2563eb', label: t('settings.notifications_push'), sublabel: t('settings.notifications_push_desc'), }, { icon: 'flame-outline', iconColor: '#f97316', label: t('settings.notifications_streak'), sublabel: t('settings.notifications_streak_desc'), }, ], }, { key: 'devices', title: t('settings.section_devices'), rows: [ { icon: 'phone-portrait-outline', iconColor: '#16a34a', label: t('settings.devices'), sublabel: t('settings.devices_desc'), }, { icon: 'star-outline', iconColor: colors.brandOrange, label: t('settings.subscription'), sublabel: t('settings.subscription_desc'), }, ], }, { key: 'lyra', title: t('settings.section_lyra'), rows: [ { icon: 'mic-outline', iconColor: '#ec4899', label: t('settings.lyra_voice'), sublabel: t('settings.lyra_voice_desc'), }, ], }, ]; if (__DEV__) { sections.push({ key: 'debug', title: t('settings.section_debug'), rows: [ { icon: 'bug-outline', iconColor: '#737373', label: t('settings.debug_llm'), sublabel: t('settings.debug_llm_desc'), }, { icon: 'volume-high-outline', iconColor: '#737373', label: t('settings.debug_tts'), sublabel: t('settings.debug_tts_desc'), }, ], }); } return ( router.back()} hitSlop={8} style={({ pressed }) => ({ width: 40, height: 40, alignItems: 'center', justifyContent: 'center', opacity: pressed ? 0.6 : 1, })} > {t('settings.title')} {t('settings.coming_soon_title')} {t('settings.coming_soon_desc')} {sections.map((section) => ( {section.title} {section.rows.map((row, i) => ( {row.label} {row.sublabel} {t('settings.soon_badge')} ))} ))} {t('settings.skeleton_footer')} {Platform.OS} ); }