import { useState, useRef, useEffect, useCallback } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { Cloud, User, Settings, Key, LogOut, ChevronDown, Command } from 'lucide-react'; import { ThemeToggle } from '@/components/ui/theme-toggle'; import { Button } from '@/components/ui/button'; import { useAuth } from '@/contexts/AuthContext'; export function Header() { const { user, isAuthenticated, logout } = useAuth(); const [isDropdownOpen, setIsDropdownOpen] = useState(false); const dropdownRef = useRef(null); const navigate = useNavigate(); // Close dropdown when clicking outside useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsDropdownOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, []); const handleLogout = useCallback(() => { logout(); navigate('/login'); }, [logout, navigate]); const handleKeyDown = useCallback((e: React.KeyboardEvent) => { if (e.key === 'Escape') { setIsDropdownOpen(false); } }, []); return (
); }