import React from 'react'; import { useNavigate } from 'react-router-dom'; import { useAuth } from '../context/AuthContext'; // Default avatar for non-Google users const DEFAULT_AVATAR = "https://api.dicebear.com/7.x/avataaars/svg?seed=PopcornPing"; const Navbar = () => { const navigate = useNavigate(); const { user, logout } = useAuth(); const handleLogout = async () => { try { await logout(); navigate('/login'); } catch (error) { console.error("Logout failed", error); } }; const getAvatarUrl = () => { if (user && user.avatar && user.avatar.trim() !== '') { return user.avatar; } // Otherwise use default avatar return DEFAULT_AVATAR; }; // Get display name const getDisplayName = () => { if (!user) return 'User'; return user.username || user.name || 'User'; }; return (
{/* Left: Logo Section */}
navigate('/')} > PopcornPing Logo { e.target.style.display = 'none'; e.target.parentNode.innerHTML = '
P
'; }} /> PopcornPing
{/* Right: User Dashboard Details */} {user ? (
{/* Name from AuthContext */} {getDisplayName()} {/* Email from AuthContext */} {user.email}
{/* Dynamic Avatar */}
Profile { // Fallback if image fails to load (e.g., bad URL or network error) console.error('Avatar failed to load, using default'); e.target.src = DEFAULT_AVATAR; }} />
) : ( )}
); }; export default Navbar;