import React from "react"; import Link from "next/link"; import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; // hooks import { useApplication, useEventTracker, useUser } from "hooks/store"; // components import { NotificationPopover } from "components/notifications"; // ui import { Tooltip } from "@plane/ui"; import { Crown } from "lucide-react"; // constants import { EUserWorkspaceRoles } from "constants/workspace"; import { SIDEBAR_MENU_ITEMS } from "constants/dashboard"; import { SIDEBAR_CLICKED } from "constants/event-tracker"; // helper import { cn } from "helpers/common.helper"; export const WorkspaceSidebarMenu = observer(() => { // store hooks const { theme: themeStore } = useApplication(); const { captureEvent } = useEventTracker(); const { membership: { currentWorkspaceRole }, } = useUser(); // router const router = useRouter(); const { workspaceSlug } = router.query; // computed const workspaceMemberInfo = currentWorkspaceRole || EUserWorkspaceRoles.GUEST; const handleLinkClick = (itemKey: string) => { if (window.innerWidth < 768) { themeStore.toggleMobileSidebar(); } captureEvent(SIDEBAR_CLICKED, { destination: itemKey, }); }; return (
{SIDEBAR_MENU_ITEMS.map( (link) => workspaceMemberInfo >= link.access && ( handleLinkClick(link.key)}>
{ } {!themeStore?.sidebarCollapsed && link.label} {!themeStore?.sidebarCollapsed && link.key === "active-cycles" && ( )}
) )}
); });