import "../../styles/components/Navbar.css"; import { useContext, useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import { logoutRequest } from "../../api/auth"; import { AuthContext } from "../../context/AuthContext"; import useActionToast from "../../hooks/useActionToast"; import getApiErrorMessage from "../../lib/getApiErrorMessage"; import HouseholdSwitcher from "../household/HouseholdSwitcher"; export default function Navbar() { const navigate = useNavigate(); const { role, logout, username } = useContext(AuthContext); const toast = useActionToast(); const [showUserMenu, setShowUserMenu] = useState(false); const closeMenus = () => { setShowUserMenu(false); }; const handleLogout = async () => { let loggedOutRemotely = true; let fallbackReason = ""; try { await logoutRequest(); } catch (error) { // Clear local auth state even if server logout fails. loggedOutRemotely = false; fallbackReason = getApiErrorMessage(error, "Unable to end server session"); } finally { logout(); closeMenus(); if (loggedOutRemotely) { toast.success("Logged out", "Logged out successfully"); } else { toast.info("Logged out locally", `Server logout failed: ${fallbackReason}`); } navigate("/login"); } }; return ( ); }