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 (
{displayName}