import React, { useState, useEffect } from 'react'; import { Panel, PanelGroup, PanelResizeHandle } from 'react-resizable-panels'; import ChatPanel from './components/ChatPanel'; import AgentPanel from './components/AgentPanel'; import CodeEditor from './components/CodeEditor'; import TerminalTabs from './components/TerminalTabs'; import FileTree from './components/FileTree'; import ModelSelector from './components/ModelSelector'; import TopBar from './components/TopBar'; import StatusBar from './components/StatusBar'; import GitPanel from './components/GitPanel'; import BackgroundTasks from './components/BackgroundTasks'; import { FaComments, FaRobot, FaTerminal, FaCodeBranch, FaTasks } from 'react-icons/fa'; const App: React.FC = () => { const [activeBottom, setActiveBottom] = useState('chat'); const [projectPath] = useState('/app/sandbox'); const [activeFile, setActiveFile] = useState(null); const [selectedModel, setSelectedModel] = useState('groq-llama-3.3-70b-versatile'); const [sidebarVisible, setSidebarVisible] = useState(true); useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { const mod = e.ctrlKey || e.metaKey; if (mod && e.key === 'b') { e.preventDefault(); setSidebarVisible(prev => !prev); } else if (mod && e.key === '1') { e.preventDefault(); setActiveBottom('chat'); } else if (mod && e.key === '2') { e.preventDefault(); setActiveBottom('agent'); } else if (mod && e.key === '3') { e.preventDefault(); setActiveBottom('terminal'); } else if (mod && e.key === '4') { e.preventDefault(); setActiveBottom('git'); } else if (mod && e.key === '5') { e.preventDefault(); setActiveBottom('tasks'); } }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, []); return (
{sidebarVisible && (
EXPLORER setSidebarVisible(false)} style={{ cursor: 'pointer', color: 'var(--text-secondary)' }}>×
)} {!sidebarVisible && (
setSidebarVisible(true)} style={{ cursor: 'pointer', color: 'var(--text-secondary)' }}>☰
)}
{activeFile ? (
📄 {activeFile}
) : (
No file selected
)}
{activeBottom === 'chat' && } {activeBottom === 'agent' && } {activeBottom === 'terminal' && } {activeBottom === 'git' && } {activeBottom === 'tasks' && }
); }; export default App;