/* eslint-disable react-hooks/exhaustive-deps */ /* eslint-disable react/jsx-key */ import React, { Fragment, useEffect, useState } from "react"; import Image from "next/image"; import { useRouter } from "next/router"; import { faGithub, faSlack } from "@fortawesome/free-brands-svg-icons"; import { faCircleQuestion } from "@fortawesome/free-regular-svg-icons"; import { faAngleDown, faBook, faCoins, faEnvelope, faGear, faPlus, faRightFromBracket, } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Menu, Transition } from "@headlessui/react"; import logout from "~/pages/api/auth/Logout"; import getOrganization from "~/pages/api/organization/GetOrg"; import getOrganizations from "~/pages/api/organization/getOrgs"; import getUser from "~/pages/api/user/getUser"; import guidGenerator from "../utilities/randomId"; const supportOptions = [ [ , "Join Slack Forum", "https://join.slack.com/t/infisical-users/shared_invite/zt-1kdbk07ro-RtoyEt_9E~fyzGo_xQYP6g", ], [ , "Read Docs", "https://infisical.com/docs/getting-started/introduction", ], [ , "Open a GitHub Issue", "https://github.com/Infisical/infisical-cli/issues", ], [ , "Send us an Email", "mailto:support@infisical.com", ], ]; export default function Navbar({ onButtonPressed }) { const router = useRouter(); const [user, setUser] = useState({}); const [orgs, setOrgs] = useState([]); const [currentOrg, setCurrentOrg] = useState([]); useEffect(async () => { const userData = await getUser(); setUser(userData); const orgsData = await getOrganizations(); setOrgs(orgsData); const currentOrg = await getOrganization({ orgId: localStorage.getItem("orgData.id"), }); setCurrentOrg(currentOrg); }, []); const closeApp = async () => { console.log("Logging out..."); await logout(); router.push("/"); }; return (
{supportOptions.map((option) => ( // eslint-disable-next-line react/jsx-no-target-blank
{option[0]}
{option[1]}
))}
{user?.firstName} {user?.lastName}
SIGNED IN AS
router.push("/settings/personal/" + router.query.id) } className="flex flex-row items-center px-1 mx-1 my-1 hover:bg-white/5 cursor-pointer rounded-md" >
{user?.firstName?.charAt(0)}

{" "} {user?.firstName} {user?.lastName}

{" "} {user?.email}

CURRENT ORGANIZATION
router.push("/settings/org/" + router.query.id) } className="flex flex-row items-center px-2 mt-2 py-1 hover:bg-white/5 cursor-pointer rounded-md" >
{currentOrg?.name?.charAt(0)}

{currentOrg?.name}

{orgs?.length > 1 && (
OTHER ORGANIZATIONS
{orgs .filter( (org) => org._id != localStorage.getItem("orgData.id") ) .map((org) => (
{ localStorage.setItem("orgData.id", org._id); router.reload(); }} className="flex flex-row justify-start items-center hover:bg-white/5 w-full p-1.5 cursor-pointer rounded-md" >
{org.name.charAt(0)}

{org.name}

))}
)}
{({ active }) => ( )}
); }