import React from "react"; import Link from "next/link"; import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; import { BarChart2, Briefcase, CheckCircle, LayoutGrid } from "lucide-react"; // hooks import { useApplication, useUser } from "hooks/store"; // components import { NotificationPopover } from "components/notifications"; // ui import { Tooltip } from "@plane/ui"; // constants import { EUserWorkspaceRoles } from "constants/workspace"; const workspaceLinks = (workspaceSlug: string) => [ { Icon: LayoutGrid, name: "Dashboard", href: `/${workspaceSlug}`, }, { Icon: BarChart2, name: "Analytics", href: `/${workspaceSlug}/analytics`, }, { Icon: Briefcase, name: "Projects", href: `/${workspaceSlug}/projects`, }, { Icon: CheckCircle, name: "All Issues", href: `/${workspaceSlug}/workspace-views/all-issues`, }, ]; export const WorkspaceSidebarMenu = observer(() => { // store hooks const { theme: themeStore } = useApplication(); const { membership: { currentWorkspaceRole }, } = useUser(); // router const router = useRouter(); const { workspaceSlug } = router.query; const isAuthorizedUser = !!currentWorkspaceRole && currentWorkspaceRole >= EUserWorkspaceRoles.MEMBER; return (
{workspaceLinks(workspaceSlug as string).map((link, index) => { const isActive = link.name === "Settings" ? router.asPath.includes(link.href) : router.asPath === link.href; if (!isAuthorizedUser && link.name === "Analytics") return; return (
{} {!themeStore?.sidebarCollapsed && link.name}
); })}
); });