import Link from "next/link"; import React, { useState, useEffect } from "react"; import type { MenuProps } from "antd"; import { Dropdown } from "antd"; import { Organization } from "@/components/networking"; import { defaultOrg } from "@/components/common_components/default_org"; import { UserOutlined, LogoutOutlined } from '@ant-design/icons'; import { clearTokenCookies } from "@/utils/cookieUtils"; import { fetchProxySettings } from "@/utils/proxyUtils"; interface NavbarProps { userID: string | null; userEmail: string | null; userRole: string | null; premiumUser: boolean; setProxySettings: React.Dispatch>; proxySettings: any; accessToken: string | null; } const Navbar: React.FC = ({ userID, userEmail, userRole, premiumUser, proxySettings, setProxySettings, accessToken, }) => { const isLocal = process.env.NODE_ENV === "development"; const imageUrl = isLocal ? "http://localhost:4000/get_image" : "/get_image"; const [logoutUrl, setLogoutUrl] = useState(""); useEffect(() => { const initializeProxySettings = async () => { if (accessToken) { const settings = await fetchProxySettings(accessToken); console.log("response from fetchProxySettings", settings); if (settings) { setProxySettings(settings); } } }; initializeProxySettings(); }, [accessToken]); useEffect(() => { setLogoutUrl(proxySettings?.PROXY_LOGOUT_URL || ""); }, [proxySettings]); const handleLogout = () => { clearTokenCookies(); window.location.href = logoutUrl; }; const userItems: MenuProps["items"] = [ { key: "1", label: (

Role: {userRole}

Email: {userEmail || "Unknown"}

{userID}

Premium User: {String(premiumUser)}

), }, { key: "2", label:

Logout

, } ]; return ( ); }; export default Navbar;