import React, { useState } from 'react'; import { Box, Typography, Avatar, Menu, MenuItem, ListItemIcon, Divider, IconButton, Tooltip } from '@mui/material'; import { Logout as LogoutIcon, LockReset as LockResetIcon, Person as PersonIcon, Settings as SettingsIcon, AccountCircle as AccountCircleIcon } from '@mui/icons-material'; import { useAuth } from '../contexts/AuthContext'; import ChangePasswordModal from './ChangePasswordModal'; import SettingsModal from './SettingsModal'; const ProfileDropdown = () => { const { user, logout } = useAuth(); const [anchorEl, setAnchorEl] = useState(null); const [passwordModalOpen, setPasswordModalOpen] = useState(false); const [settingsModalOpen, setSettingsModalOpen] = useState(false); const open = Boolean(anchorEl); const handleClick = (event) => { setAnchorEl(event.currentTarget); }; const handleClose = () => { setAnchorEl(null); }; const handleLogout = () => { handleClose(); logout(); }; const handleChangePassword = () => { handleClose(); setPasswordModalOpen(true); }; // Generate initials for avatar const getInitials = (name) => { if (!name) return 'U'; return name.substring(0, 2).toUpperCase(); }; return ( <> {/* Profile Button - Replaces the old text/logout combo */} {/* Use first letter of email if name is not available, generic fallback */} {user?.email ? user.email.charAt(0).toUpperCase() : } {/* User Info Section */} {user?.email?.split('@')[0] || 'User'} {user?.email} { handleClose(); setPasswordModalOpen(true); }}> Change Password { handleClose(); setSettingsModalOpen(true); }}> Settings Logout {/* Change Password Modal */} setPasswordModalOpen(false)} /> {/* Settings Modal */} setSettingsModalOpen(false)} /> ); }; export default ProfileDropdown;