import React, { useState } from 'react'; import { Menu, Sun, Moon, User, LogOut, ChevronDown } from 'lucide-react'; import { signOut } from '../services/api'; import { useAuthStore } from '../store/authStore'; import { useAuth } from '../context/AuthContext'; const Navbar = ({ onSidebarToggle }) => { let user = null; try { const authContext = useAuth(); user = authContext?.user || null; } catch (e) { // useAuth not available, will use localStorage } const userData = user || JSON.parse(localStorage.getItem('user') || '{}') || {}; const userName = userData.name && userData.name !== '...' ? userData.name : (userData.email || '...'); const userEmail = userData.email || ''; const isLoggedIn = useAuthStore((s) => s.isLoggedIn); const [isDarkMode, setIsDarkMode] = useState(() => { return localStorage.getItem('theme') === 'dark' || (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches); }); const [isUserMenuOpen, setIsUserMenuOpen] = useState(false); // Apply theme to document React.useEffect(() => { if (isDarkMode) { document.documentElement.classList.add('dark'); localStorage.setItem('theme', 'dark'); } else { document.documentElement.classList.remove('dark'); localStorage.setItem('theme', 'light'); } }, [isDarkMode]); const toggleTheme = () => { setIsDarkMode(!isDarkMode); }; const handleLogout = async () => { try { await signOut(); } catch (e) { // no-op; interceptor handles redirect and state } finally { setIsUserMenuOpen(false); } }; return (
{/* Left side */}

KHalij Payment

{/* Right side */}
{/* Theme toggle */} {/* User menu */}
{/* Dropdown menu */} {isUserMenuOpen && (

{isLoggedIn ? userName : 'Guest'}

{isLoggedIn ? userEmail : ''}

)}
{/* Click outside to close user menu */} {isUserMenuOpen && (
setIsUserMenuOpen(false)} /> )}
); }; export default Navbar;