import { useRouter } from "expo-router"; import { useEffect, useState } from "react"; import { ScrollView, StyleSheet, View } from "react-native"; import EnIcon from "@/assets/icons/en_icon.png"; import VnIcon from "@/assets/icons/vi_icon.png"; import RotateSwitch from "@/components/rotate-switch"; import { ThemeToggle } from "@/components/theme-toggle"; import { ThemedText } from "@/components/themed-text"; import { ThemedView } from "@/components/themed-view"; import { DOMAIN, TOKEN } from "@/constants"; import { useAppTheme } from "@/hooks/use-app-theme"; import { useI18n } from "@/hooks/use-i18n"; import { removeStorageItem } from "@/utils/storage"; import { SafeAreaView } from "react-native-safe-area-context"; type Todo = { userId: number; id: number; title: string; completed: boolean; }; export default function SettingScreen() { const router = useRouter(); const [data, setData] = useState(null); const { t, locale, setLocale } = useI18n(); const { colors } = useAppTheme(); const [isEnabled, setIsEnabled] = useState(locale === "vi"); // Sync isEnabled state khi locale thay đổi useEffect(() => { setIsEnabled(locale === "vi"); }, [locale]); const toggleSwitch = async () => { const newLocale = isEnabled ? "en" : "vi"; await setLocale(newLocale); }; return ( {t("navigation.setting")} {/* Theme Toggle Section */} {/* Language Section */} {t("common.language")} {/* Logout Button */} { await removeStorageItem(TOKEN); await removeStorageItem(DOMAIN); router.navigate("/auth/login"); }} > {t("auth.logout")} {data && ( {data.title} {data.completed} {data.id} )} ); } const styles = StyleSheet.create({ safeArea: { flex: 1, paddingBottom: 5, }, container: { flex: 1, }, scrollView: { flex: 1, }, scrollContent: { padding: 20, gap: 16, }, title: { textAlign: "center", marginBottom: 20, }, themeSection: { marginBottom: 8, }, settingItem: { flexDirection: "row", alignItems: "center", justifyContent: "space-between", paddingHorizontal: 16, paddingVertical: 16, borderRadius: 12, borderWidth: 1, }, button: { marginTop: 20, paddingVertical: 14, paddingHorizontal: 20, borderRadius: 12, alignItems: "center", justifyContent: "center", }, buttonText: { color: "#fff", fontSize: 16, }, debugSection: { marginTop: 20, padding: 16, borderRadius: 12, gap: 8, }, });