'use client'; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { apiFetch } from '../../../lib/auth'; import { Skeleton } from '@/components/ui/skeleton'; import { useT } from '@/i18n'; interface Profile { nickname: string; email: string; phone: string; avatar: string } export default function SettingsPage() { const t = useT(); const router = useRouter(); const [profile, setProfile] = useState({ nickname: '', email: '', phone: '', avatar: '' }); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); const [nickname, setNickname] = useState(''); const [email, setEmail] = useState(''); useEffect(() => { loadProfile(); }, []); async function loadProfile() { try { const res = await apiFetch('/dashboard/profile'); const data = await res.json(); setProfile(data); setNickname(data.nickname || ''); setEmail(data.email || ''); } catch (e) { console.error(e) } setLoading(false); } async function handleSave(e: React.FormEvent) { e.preventDefault(); setSaving(true); try { await apiFetch('/dashboard/profile', { method: 'PUT', body: JSON.stringify({ nickname, email }) }); alert(t.settings.saveSuccess); } catch (e) { console.error(e) } setSaving(false); } function handleLogout() { localStorage.removeItem('token'); localStorage.removeItem('refreshToken'); router.push('/auth'); } if (loading) return (
{[1,2,3].map(i => )}
); return (

{t.settings.title}

{t.settings.desc}

{t.settings.personalInfo}

setNickname(e.target.value)} className="w-full px-4 py-2.5 border border-border rounded-xl text-sm focus:outline-none focus:ring-2 focus:ring-brand-500" />
setEmail(e.target.value)} className="w-full px-4 py-2.5 border border-border rounded-xl text-sm focus:outline-none focus:ring-2 focus:ring-brand-500" />

{t.settings.accountSecurity}

); }