import { Columns3, MessageSquare, PanelLeftClose } from 'lucide-react' import { type CSSProperties, type ReactNode, useState } from 'react' import { Sidebar, SidebarInset, SidebarMenuButton, SidebarMenuItem, SidebarProvider, SidebarTrigger, useSidebar, } from '#/components/ui/sidebar' import { TooltipProvider } from '#/components/ui/tooltip' import { WorkspaceNavigation } from '#/components/workspace-navigation' type ShellProps = { hasTemporaryDecks: boolean sidebar: ReactNode researchChat: (closeMobileSidebar: () => void) => ReactNode children: ReactNode } export function AppShell(props: ShellProps) { return ( ) } function Workspace({ sidebar, researchChat, children, hasTemporaryDecks, }: ShellProps) { const [panel, setPanel] = useState<'chat' | 'decks'>('chat') const { setOpen, setOpenMobile, isMobile } = useSidebar() const navigation = [ { id: 'chat', title: 'Research chat', icon: MessageSquare }, { id: 'decks', title: 'Deck manager', icon: Columns3 }, ] as const return ( <> isMobile ? setOpenMobile(false) : setOpen(false) } className="size-10 justify-center p-0" > } > {navigation.map((item) => ( { setPanel(item.id) if (isMobile) setOpenMobile(true) else setOpen(true) }} className="size-10 justify-center p-0" > {item.title} ))} {researchChat(() => setOpenMobile(false))} Decks {sidebar} Twitter Lite Research workspace {children} > ) }