// src/pages/agent-office/components/SidePanel.jsx import { useState } from 'react'; import CommandTab from './CommandTab.jsx'; import TaskTab from './TaskTab.jsx'; import TokenTab from './TokenTab.jsx'; import LogTab from './LogTab.jsx'; const AGENT_META = { stock: { displayName: '주식 트레이더', emoji: '📈', color: '#4488cc' }, music: { displayName: '음악 프로듀서', emoji: '🎵', color: '#44aa88' }, blog: { displayName: '블로그 마케터', emoji: '✍️', color: '#d97706' }, realestate: { displayName: '청약 애널리스트', emoji: '🏢', color: '#c026d3' }, lotto: { displayName: '로또 큐레이터', emoji: '🎱', color: '#ef4444' } }; const TABS = ['Commands', 'Tasks', 'Tokens', 'Logs']; export default function SidePanel({ agentId, agentState, pendingTask, onClose, refreshTrigger }) { const [activeTab, setActiveTab] = useState('Commands'); const meta = AGENT_META[agentId]; if (!meta) return null; const stateText = agentState?.detail ? `${agentState.state} - ${agentState.detail}` : agentState?.state || 'unknown'; return (
{/* Header */}
{meta.emoji}
{meta.displayName}
● {stateText}
{/* Tabs */}
{TABS.map(tab => ( ))}
{/* Tab Content */}
{activeTab === 'Commands' && ( )} {activeTab === 'Tasks' && ( )} {activeTab === 'Tokens' && ( )} {activeTab === 'Logs' && ( )}
); }