import { useState, useEffect } from "react"; interface User { name?: string; email?: string; avatar?: string; } export default function Navigation() { const [isOpen, setIsOpen] = useState(false); const [user, setUser] = useState(null); const [isLoading, setIsLoading] = useState(true); useEffect(() => { checkAuth(); }, []); const checkAuth = async () => { try { const response = await fetch("/api/auth/session"); if (response.ok) { const data = await response.json(); setUser(data.user); } } catch (error) { console.error("Auth check failed:", error); } finally { setIsLoading(false); } }; const getInitials = (user: User): string => { if (user.name) { return user.name.substring(0, 2).toUpperCase(); } if (user.email) { return user.email.substring(0, 2).toUpperCase(); } return "?"; }; const AccountAvatar = () => { if (isLoading) { return (
); } return ( <> {user ? (
{user.avatar ? ( {user.name ) : (
{getInitials(user)}
)}
) : ( )} ); }; return ( <> {/* Account Avatar - Fixed position, synced with nav */}
{/* Mobile Menu */} {isOpen && ( <>
setIsOpen(false)} >
setIsOpen(false)} > Home setIsOpen(false)} > Blog setIsOpen(false)} > Guestbook {user && ( <>
{user.name || user.email}
setIsOpen(false)} > Logout )}
)} ); }