import { useState } from 'react'; import { Files, Search, MessageSquare, GitBranch, Shield, Settings, } from 'lucide-react'; import { cn } from '@/lib/utils'; import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@/components/ui/tooltip'; import FileTree from '@/components/explorer/FileTree'; import AIChatPanel from '@/components/ai/AIChatPanel'; type SidebarPanel = 'files' | 'search' | 'chat' | 'git' | 'agents' | 'settings'; const sidebarItems: Array<{ id: SidebarPanel; icon: typeof Files; label: string }> = [ { id: 'files', icon: Files, label: 'Explorer' }, { id: 'search', icon: Search, label: 'Search' }, { id: 'chat', icon: MessageSquare, label: 'AI Chat' }, { id: 'git', icon: GitBranch, label: 'Git' }, { id: 'agents', icon: Shield, label: 'Agents' }, { id: 'settings', icon: Settings, label: 'Settings' }, ]; export default function Sidebar() { const [activePanel, setActivePanel] = useState('files'); return (
{/* Icon strip */}
{sidebarItems.map((item) => ( {item.label} ))}
{/* Panel content */}

{sidebarItems.find((i) => i.id === activePanel)?.label}

{activePanel === 'files' && } {activePanel === 'search' && (

Type to search across workspace files.

)} {activePanel === 'chat' && (

AI Chat is in the right panel.

)} {activePanel === 'git' && (

Git integration

Import a repository to see Git status.

)} {activePanel === 'agents' && (

Agent controls will appear here after running a review.

)} {activePanel === 'settings' && (

Settings

Font Size: 14px

Tab Size: 2

Word Wrap: On

AI Completions: On

)}
); }