'use client'; /** * User Navigation Component * * Displays login/register buttons when logged out * Displays user menu with logout when logged in */ import { useAuth } from '@/lib/contexts/AuthContext'; import { Button } from '@/components/ui/button'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { AuthModal } from './AuthModal'; export function UserNav() { const { user, isAuthenticated, isLoading, logout } = useAuth(); const router = useRouter(); const [showAuthModal, setShowAuthModal] = useState(false); const [authMode, setAuthMode] = useState<'login' | 'register'>('login'); const handleLogout = async () => { await logout(); router.push('/'); }; const handleLogin = () => { setAuthMode('login'); setShowAuthModal(true); }; const handleRegister = () => { setAuthMode('register'); setShowAuthModal(true); }; if (isLoading) { return (
); } if (isAuthenticated && user) { return (
{user.username} {user.email}
{user.username.charAt(0).toUpperCase()}
); } return ( <>
setShowAuthModal(false)} defaultMode={authMode} /> ); }