import { useState, useRef, useEffect } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { User, Settings, ShoppingBag, DollarSign, LogOut } from 'lucide-react'; const UserDropdown = ({ onLogout, userName }) => { const [isOpen, setIsOpen] = useState(false); const dropdownRef = useRef(null); const navigate = useNavigate(); // Use passed userName or fallback to default const displayName = userName || 'User'; const toggleDropdown = () => { setIsOpen(!isOpen); }; // Close dropdown when clicking outside useEffect(() => { const handleClickOutside = (event) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target)) { setIsOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); const handleLogout = () => { // Close the dropdown setIsOpen(false); // Call the onLogout function from props if (onLogout) { onLogout(); console.log("Logout successful"); } // Navigate to login page (this may be redundant as App.jsx should handle redirection) navigate('/login'); }; return (
{isOpen && (
{/* User Info */}

{displayName}

{/* Navigation Links */}
setIsOpen(false)} > My Listings setIsOpen(false)} > Transactions setIsOpen(false)} > Settings
)}
); }; export default UserDropdown;