import React from "react"; import Link from "next/link"; import { useRouter } from "next/router"; // components import { NotificationPopover } from "components/notifications"; import { Tooltip } from "@plane/ui"; // icons import { BarChart2, Briefcase, CheckCircle, LayoutGrid } from "lucide-react"; // mobx store import { useMobxStore } from "lib/mobx/store-provider"; import { observer } from "mobx-react-lite"; // 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(() => { const { theme: themeStore, user: { currentWorkspaceRole }, } = useMobxStore(); // 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}
); })}
); });