import { View, Text, Modal, TouchableOpacity, StyleSheet } from 'react-native'; import { Ionicons } from '@expo/vector-icons'; interface LanguageModalProps { visible: boolean; onClose: () => void; currentLanguage: string; onSelectLanguage: (language: string) => void; } const languages = [ { code: 'ko', name: '한국어', flag: '🇰🇷' }, { code: 'en', name: 'English', flag: '🇺🇸' }, { code: 'ja', name: '日本語', flag: '🇯🇵' }, { code: 'zh-cn', name: '简体中文', flag: '🇨🇳' }, { code: 'zh-tw', name: '繁體中文', flag: '🇹🇼' }, { code: 'fr', name: 'Français', flag: '🇫🇷' }, { code: 'de', name: 'Deutsch', flag: '🇩🇪' }, { code: 'es', name: 'Español', flag: '🇪🇸' }, { code: 'it', name: 'Italiano', flag: '🇮🇹' }, ]; export default function LanguageModal({ visible, onClose, currentLanguage, onSelectLanguage }: LanguageModalProps) { return ( Select Language {languages.map((lang) => ( { onSelectLanguage(lang.code); onClose(); }} > {lang.flag} {lang.name} {currentLanguage === lang.code && ( )} ))} ); } const styles = StyleSheet.create({ overlay: { flex: 1, backgroundColor: 'rgba(0, 0, 0, 0.5)', justifyContent: 'center', alignItems: 'center', }, modalContainer: { backgroundColor: '#fff', borderRadius: 12, width: '85%', maxWidth: 400, maxHeight: '70%', }, header: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', padding: 16, borderBottomWidth: 1, borderBottomColor: '#e0e0e0', }, title: { fontSize: 18, fontWeight: '600', color: '#000', }, languageList: { padding: 8, }, languageItem: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', padding: 12, borderRadius: 8, marginBottom: 4, }, languageItemActive: { backgroundColor: '#f0f0f0', }, languageInfo: { flexDirection: 'row', alignItems: 'center', gap: 12, }, flag: { fontSize: 24, }, languageName: { fontSize: 16, color: '#333', }, languageNameActive: { fontWeight: '600', color: '#007AFF', }, });