'use client'; import React, { useState, useEffect } from 'react'; import FileExplorer from './explorer/FileExplorer'; import AIChatPanel from './chat/AIChatPanel'; import CodeEditor from './editor/CodeEditor'; import TerminalPanel from './terminal/TerminalPanel'; import AgentMonitor from './dashboards/AgentMonitor'; import { api } from '../services/api'; export default function WorkspaceLayout() { const [activeFile, setActiveFile] = useState(''); const [fileContent, setFileContent] = useState(''); const [sessionId, setSessionId] = useState(null); const [activeTab, setActiveTab] = useState('editor'); // 'editor' | 'preview' | 'monitor' const [showTerminal, setShowTerminal] = useState(true); useEffect(() => { api.createSession('.') .then((data) => setSessionId(data.session_id)) .catch((err) => console.error('Failed to initialize workspace session:', err)); }, []); const handleSelectFile = async (filepath) => { setActiveFile(filepath); try { const content = await api.getFileContent(filepath); setFileContent(content); } catch (err) { setFileContent(`// Error reading file: ${filepath}`); } }; const handleSaveFile = async () => { if (!activeFile) return; try { await api.saveFile(activeFile, fileContent); alert(`Successfully saved ${activeFile}`); } catch (err) { alert(`Failed to save ${activeFile}`); } }; return (
{/* 1. File Explorer Sidebar */} {/* 2. Main Workstation Center Area */}
{/* Workspace Top Navigation Bar */}
{activeFile && ( )}
{/* Viewport Content Panel */}
{activeTab === 'editor' && ( )} {activeTab === 'preview' && (