import React, { useState, useRef, useEffect } from 'react'; import { Menu, Search, Bell, User as UserIcon, LogOut, ShieldCheck, ChevronDown } from 'lucide-react'; import { useAuth } from '../../context/AuthContext'; import { ThemeToggle } from './ThemeToggle'; import './layout.css'; export function Header({ setMobileOpen }) { const { user, logout, isDemoMode } = useAuth(); const [dropdownOpen, setDropdownOpen] = useState(false); const dropdownRef = useRef(null); // Close dropdown on click outside useEffect(() => { function handleClickOutside(event) { if (dropdownRef.current && !dropdownRef.current.contains(event.target)) { setDropdownOpen(false); } } document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, []); return (
{/* Left: Mobile hamburger & Search */}
{/* Right: Actions, Theme, User */}
{/* Backend Connectivity Status Badge */}
{isDemoMode ? 'Demo Sandbox' : 'Backend Live'}
{/* Theme Switcher */} {/* Notifications */} {/* User Dropdown */}
{dropdownOpen && (

{user?.fullname || user?.firstName}

{user?.email}

setDropdownOpen(false)}> Profile Settings
setDropdownOpen(false)}> Security Token Info
{ setDropdownOpen(false); logout(); }} > Sign Out
)}
); }