/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ "use client"; import { observer } from "mobx-react"; import { useParams, usePathname } from "next/navigation"; import { SettingsOutline, TickOutline } from "@makeplane/propel/icons"; import { ContextMenu } from "@plane/propel/context-menu"; import { cn } from "@plane/utils"; // components import { AppSidebarItem } from "@/components/sidebar/sidebar-item"; // hooks import { useAppRailPreferences } from "@/hooks/use-navigation-preferences"; import { useAppRailVisibility } from "@/lib/app-rail/context"; // local imports import { AppSidebarItemsRoot } from "./items-root"; export const AppRailRoot = observer(() => { // router const { workspaceSlug, projectId } = useParams(); const pathname = usePathname(); // preferences const { preferences, updateDisplayMode } = useAppRailPreferences(); const { isCollapsed, toggleAppRail } = useAppRailVisibility(); // derived values const isWorkspaceSettingsPath = pathname.includes(`/${workspaceSlug}/settings`) && !projectId; const showLabel = preferences.displayMode === "icon_with_label"; const railWidth = showLabel ? "3.75rem" : "3rem"; return (