"use client"; import { PanelLeft, Plus } from "lucide-react"; import { Button } from "@/components/ui/button"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Sheet, SheetContent, SheetTitle } from "@/components/ui/sheet"; import type { ChatItem, NavItem, PageUsage, User, Workspace } from "../../types/layout.types"; import { WorkspaceAvatar } from "../icon-rail/WorkspaceAvatar"; import { Sidebar } from "./Sidebar"; import { SidebarUserProfile } from "./SidebarUserProfile"; interface MobileSidebarProps { isOpen: boolean; onOpenChange: (open: boolean) => void; workspaces: Workspace[]; activeWorkspaceId: number | null; onWorkspaceSelect: (id: number) => void; onAddWorkspace: () => void; workspace: Workspace | null; navItems: NavItem[]; onNavItemClick?: (item: NavItem) => void; chats: ChatItem[]; activeChatId?: number | null; onNewChat: () => void; onChatSelect: (chat: ChatItem) => void; onChatPrefetch?: (chat: ChatItem) => void; onChatRename?: (chat: ChatItem) => void; onChatDelete?: (chat: ChatItem) => void; onChatArchive?: (chat: ChatItem) => void; onViewAllChats?: () => void; isAllChatsActive?: boolean; user: User; onSettings?: () => void; onManageMembers?: () => void; onUserSettings?: () => void; onAnnouncements?: () => void; announcementUnreadCount?: number; onLogout?: () => void; pageUsage?: PageUsage; theme?: string; setTheme?: (theme: "light" | "dark" | "system") => void; isLoadingChats?: boolean; } export function MobileSidebarTrigger({ onClick }: { onClick: () => void }) { return ( Open menu ); } export function MobileSidebar({ isOpen, onOpenChange, workspaces, activeWorkspaceId, onWorkspaceSelect, onAddWorkspace, workspace, navItems, onNavItemClick, chats, activeChatId, onNewChat, onChatSelect, onChatPrefetch, onChatRename, onChatDelete, onChatArchive, onViewAllChats, isAllChatsActive = false, user, onSettings, onManageMembers, onUserSettings, onAnnouncements, announcementUnreadCount = 0, onLogout, pageUsage, theme, setTheme, isLoadingChats = false, }: MobileSidebarProps) { const handleWorkspaceSelect = (id: number) => { onWorkspaceSelect(id); }; const handleNavItemClick = (item: NavItem) => { onNavItemClick?.(item); onOpenChange(false); }; const handleChatSelect = (chat: ChatItem) => { onChatSelect(chat); onOpenChange(false); }; return ( Navigation {/* Vertical Workspaces Rail - left side */} {workspaces.map((space) => ( 1} isOwner={space.isOwner} onClick={() => handleWorkspaceSelect(space.id)} size="md" disableTooltip /> ))} Add workspace { onOpenChange(false); onUserSettings(); } : undefined } onAnnouncements={ onAnnouncements ? () => { onOpenChange(false); onAnnouncements(); } : undefined } announcementUnreadCount={announcementUnreadCount} onLogout={onLogout} isCollapsed theme={theme} setTheme={setTheme} /> {/* Sidebar Content - right side */} onOpenChange(false)} navItems={navItems} onNavItemClick={handleNavItemClick} chats={chats} activeChatId={activeChatId} onNewChat={() => { onNewChat(); onOpenChange(false); }} onChatSelect={handleChatSelect} onChatPrefetch={onChatPrefetch} onChatRename={onChatRename} onChatDelete={onChatDelete} onChatArchive={onChatArchive} onViewAllChats={ onViewAllChats ? () => { onOpenChange(false); onViewAllChats(); } : undefined } isAllChatsActive={isAllChatsActive} user={user} onSettings={ onSettings ? () => { onOpenChange(false); onSettings(); } : undefined } onManageMembers={ onManageMembers ? () => { onOpenChange(false); onManageMembers(); } : undefined } onUserSettings={ onUserSettings ? () => { onOpenChange(false); onUserSettings(); } : undefined } onAnnouncements={ onAnnouncements ? () => { onOpenChange(false); onAnnouncements(); } : undefined } onNavigate={() => onOpenChange(false)} announcementUnreadCount={announcementUnreadCount} onLogout={onLogout} pageUsage={pageUsage} theme={theme} setTheme={setTheme} className="w-full border-none" isLoadingChats={isLoadingChats} disableTooltips renderUserProfile={false} /> ); }