import React, { useState, useEffect } from 'react'; import { Link, useNavigate, useLocation } from 'react-router-dom'; function Navbar() { const [user, setUser] = useState(null); const [showMenu, setShowMenu] = useState(false); const navigate = useNavigate(); const location = useLocation(); useEffect(() => { const loadUser = () => { const userStr = localStorage.getItem('user'); if (userStr) { setUser(JSON.parse(userStr)); } else { setUser(null); } }; // Load user on mount loadUser(); // Listen for storage changes (when user logs in/out) window.addEventListener('storage', loadUser); return () => window.removeEventListener('storage', loadUser); }, []); const handleLogout = () => { localStorage.removeItem('token'); localStorage.removeItem('user'); setUser(null); // Dispatch custom event to notify components on the same tab window.dispatchEvent(new CustomEvent('userStorageChange', { detail: { userData: null } })); navigate('/login'); }; const isActive = (path) => location.pathname === path; const getInitials = () => { if (!user) return ''; return `${user.firstName?.[0]}${user.lastName?.[0]}`.toUpperCase(); }; return ( ); } export default Navbar;