import { useState } from 'react' import { useNavigate } from 'react-router' import { Avatar, Box, Divider, IconButton, ListItemIcon, Menu, MenuItem, Typography } from '@mui/material' import { HelpCircle, LogOut, Settings, User } from 'lucide-react' import { useSessionStore } from '../../stores/sessionStore' import { useToastStore } from '../../stores/toastStore' import { DemoRoleSwitcher } from '../auth/DemoRoleSwitcher' const ROLE_LABELS: Record = { PROPERTY_MANAGER: 'Property Manager', DEMAND_USER: 'Demand User', } function getUserInitials(name: string): string { return name .split(' ') .map((n) => n[0]) .join('') .toUpperCase() .slice(0, 2) } export function UserMenu() { const [anchorEl, setAnchorEl] = useState(null) const { currentUser, logout } = useSessionStore() const navigate = useNavigate() const showToast = useToastStore((s) => s.showToast) function handleOpen(e: React.MouseEvent) { setAnchorEl(e.currentTarget) } function handleClose() { setAnchorEl(null) } function handleLogout() { handleClose() logout() navigate('/auth/login') } const initials = getUserInitials(currentUser?.name ?? 'U') return ( <> {initials} {/* User info header */} {currentUser && ( {currentUser.name} {ROLE_LABELS[currentUser.role] ?? currentUser.role} {currentUser.organizationName} )} { handleClose(); showToast('Profilseite ist in Kürze verfügbar.', 'info') }}> Profil { handleClose(); showToast('Einstellungen sind in Kürze verfügbar.', 'info') }}> Einstellungen { handleClose(); localStorage.removeItem('property_match_welcomed'); window.location.reload() }}> Produkttour starten {/* Demo role switcher */} Abmelden ) }