import { useEffect, useState } from 'react'; import { Routes, Route, Navigate, useLocation, useNavigate } from 'react-router-dom'; import { Spin } from 'antd'; import Sidebar from './components/Sidebar'; import CommandPalette from './components/CommandPalette'; import AgentList from './pages/AgentList'; import AgentEditor from './pages/AgentEditor'; import ChatPage from './pages/ChatPage'; import LoginPage from './pages/LoginPage'; import MarketplacePage from './pages/MarketplacePage'; import TeamsPage from './pages/TeamsPage'; import PromptLibraryPage from './pages/PromptLibraryPage'; import StatsPage from './pages/StatsPage'; import SharedSessionPage from './pages/SharedSessionPage'; import WorkflowsPage from './pages/WorkflowsPage'; import { useAuth } from './store/auth'; import { AgentAPI } from './api'; function HomeRedirect() { return ; } export default function App() { const { user } = useAuth(); const location = useLocation(); const [paletteOpen, setPaletteOpen] = useState(false); // 全局快捷键 Ctrl/⌘ + K useEffect(() => { if (!user) return; const handler = (e: KeyboardEvent) => { if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === 'k') { e.preventDefault(); setPaletteOpen((v) => !v); } }; window.addEventListener('keydown', handler); return () => window.removeEventListener('keydown', handler); }, [user]); const mainContent = ( } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); return ( <> {/* 公开分享会话页:跳过 AuthGuard */} {location.pathname.startsWith('/shared/') ? ( } /> ) : !user ? ( } /> } /> ) : (
{/* 只有编辑器全屏显示,其他页面均保留侧边栏 */} {!location.pathname.startsWith('/agents/') || location.pathname.includes('/chat') ? ( setPaletteOpen(true)} /> ) : null}
{mainContent}
setPaletteOpen(false)} />
)} ); }