import {useTheme} from '@/contexts/theme-context'; import {tryUseWorkspace} from '@/contexts/workspace-context'; import {cn} from '@/lib/utils'; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import {BookOpen, Box, ChevronDown, Compass, Home, LayoutGrid, Monitor, Moon, Plus, Sun, Users} from 'lucide-react'; import {useNavigate} from 'react-router-dom'; import {Avatar, AvatarFallback, AvatarImage} from '@/components/ui/avatar'; const btnClass = 'flex w-full h-9 justify-start items-center rounded-md font-medium hover:bg-muted cursor-pointer bg-transparent border-0 text-left text-sm'; export function SidebarSystem({collapsed}: {collapsed: boolean}) { const {theme, setTheme} = useTheme(); const navigate = useNavigate(); const workspaceCtx = tryUseWorkspace(); const workspaces = workspaceCtx?.workspaces; const currentWorkspace = workspaceCtx?.currentWorkspace; return (
{/* Workspace switcher — only shown when inside WorkspaceProvider */} {workspaceCtx && ( } > {currentWorkspace ? ( {currentWorkspace.name.charAt(0).toUpperCase()} ) : ( )} {!collapsed && ( {currentWorkspace?.name || 'Workspaces'} )} {!collapsed && } Workspaces {workspaces?.workspaces.map((ws) => ( navigate(`/w/${ws.slug}`)} className="gap-2" > {ws.name.charAt(0).toUpperCase()} {ws.name} @{ws.slug} ))} navigate('/w/me')} className="gap-2"> All Workspaces navigate('/init/workspace')} className="gap-2"> Create Workspace )} } > {theme === 'dark' ? ( ) : theme === 'light' ? ( ) : ( )} {!collapsed && Theme} {!collapsed && ( Theme Settings setTheme('light')}> Light setTheme('dark')}> Dark setTheme('system')}> System )} {collapsed && ( <> setTheme('light')}> setTheme('dark')}> setTheme('system')}> )}
); }