import { useState, useEffect } from 'react'; import { Sidebar } from './components/Layout/Sidebar'; import { SettingsLayout } from './components/Settings/SettingsLayout'; import { AgentLayout } from './components/Agent/AgentLayout'; import { ResourceLayout } from './components/Resource/ResourceLayout'; import { LeftPanel } from './components/Chat/LeftPanel'; import { ChatPanel } from './components/Chat/ChatPanel'; import { RightPanel } from './components/Chat/RightPanel'; import { AuthPage } from './components/Auth/AuthPage'; function App() { const [isAuthenticated, setIsAuthenticated] = useState(false); const [activeTab, setActiveTab] = useState('chats'); // For LeftPanel const [currentView, setCurrentView] = useState('dashboard'); // 'dashboard', 'settings', 'agent', 'resource' const [settingsTab, setSettingsTab] = useState('users'); // For SettingsLayout const [agentTab, setAgentTab] = useState('worker'); // For AgentLayout const [resourceTab, setResourceTab] = useState('skill'); // For ResourceLayout const [selectedWorkflow, setSelectedWorkflow] = useState(null); useEffect(() => { // Check if token exists in localStorage on mount const token = localStorage.getItem('token'); if (token) { setIsAuthenticated(true); } }, []); if (!isAuthenticated) { return setIsAuthenticated(true)} />; } return (
{/* 1. Sidebar (Leftmost) */} {/* Main Content Area depending on view */} {currentView === 'agent' ? ( ) : currentView === 'resource' ? ( ) : currentView === 'dashboard' ? ( <> {/* 2. Left Panel - Cluster Status & Workflows/Chats */} {/* 3. Middle Panel - AI Chat */} {/* 4. Right Panel - Workflow Execution Status (Only show when viewing workflows) */} {activeTab === 'workflows' && } ) : ( /* Settings View */ )}
); } export default App;