import { useEffect, useState } from 'react'; import { deleteMe, getMe, type UpdateMeInput, type User, updateMe } from '../api'; export default function AccountPage({ onDeleted }: { onDeleted: () => void }) { const [user, setUser] = useState(null); const [firstName, setFirstName] = useState(''); const [lastName, setLastName] = useState(''); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); const [error, setError] = useState(null); useEffect(() => { (async () => { try { const u = await getMe(); setUser(u); setFirstName(u.first_name || ''); setLastName(u.last_name || ''); } catch (e: any) { setError(e?.message || 'Failed to load account'); } finally { setLoading(false); } })(); }, []); async function handleSave(e: React.FormEvent) { e.preventDefault(); setSaving(true); setError(null); try { const payload: UpdateMeInput = { first_name: firstName || null as any, last_name: lastName || null as any }; const updated = await updateMe(payload); setUser(updated); } catch (e: any) { setError(e?.message || 'Failed to update'); } finally { setSaving(false); } } async function handleDelete() { if (!confirm('Are you sure you want to delete your account? This cannot be undone.')) return; try { await deleteMe(); onDeleted(); } catch (e: any) { alert(e?.message || 'Failed to delete account'); } } return (

Account

{loading ? (
Loading…
) : error ? (
{error}
) : !user ? (
Not signed in
) : (
Email: {user.email}
setFirstName(e.target.value)} />
setLastName(e.target.value)} />
)}
); }