"use client"; import { Plus, SquarePen } from "lucide-react"; import { Button } from "@/components/ui/button"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; import type { NavItem, User, Workspace } from "../../types/layout.types"; import { NotificationsDropdown, type NotificationsDropdownData, } from "../sidebar/NotificationsDropdown"; import { SidebarUserProfile } from "../sidebar/SidebarUserProfile"; import { WorkspaceAvatar } from "./WorkspaceAvatar"; interface IconRailProps { workspaces: Workspace[]; activeWorkspaceId: number | null; onWorkspaceSelect: (id: number) => void; onWorkspaceDelete?: (workspace: Workspace) => void; onWorkspaceSettings?: (workspace: Workspace) => void; onAddWorkspace: () => void; isSingleRailMode?: boolean; onNewChat?: () => void; navItems?: NavItem[]; onNavItemClick?: (item: NavItem) => void; user: User; onUserSettings?: () => void; onAnnouncements?: () => void; announcementUnreadCount?: number; notifications?: NotificationsDropdownData; onLogout?: () => void; theme?: string; setTheme?: (theme: "light" | "dark" | "system") => void; className?: string; } export function IconRail({ workspaces, activeWorkspaceId, onWorkspaceSelect, onWorkspaceDelete, onWorkspaceSettings, onAddWorkspace, isSingleRailMode = false, onNewChat, navItems = [], onNavItemClick, user, onUserSettings, onAnnouncements, announcementUnreadCount = 0, notifications, onLogout, theme, setTheme, className, }: IconRailProps) { const actionItems = isSingleRailMode ? [ ...(onNewChat ? [ { key: "new-chat", label: "New chat", onClick: onNewChat, icon: SquarePen, isActive: false, }, ] : []), ...navItems.map((item) => ({ key: item.url, label: item.title, onClick: () => onNavItemClick?.(item), icon: item.icon, isActive: !!item.isActive, })), ] : []; return (