import { useState } from 'react'; import { Sidebar } from './Sidebar'; import { Header } from './Header'; import { SearchModal } from './SearchModal'; import { MemoryPanel } from './MemoryPanel'; import { useAuth } from '@/hooks/useAuth'; interface AppLayoutProps { children: React.ReactNode; } export function AppLayout({ children }: AppLayoutProps) { const [sidebarOpen, setSidebarOpen] = useState(false); const [searchOpen, setSearchOpen] = useState(false); const [memoryOpen, setMemoryOpen] = useState(false); const { isLoggedIn } = useAuth(); return (
{/* 侧边栏 */} {isLoggedIn && ( <> {/* 移动端遮罩 */} {sidebarOpen && (
setSidebarOpen(false)} /> )}
setSidebarOpen(false)} onMemoryClick={() => setMemoryOpen(true)} />
)} {/* 主内容区 */}
{isLoggedIn && (
setSidebarOpen(!sidebarOpen)} onSearchClick={() => setSearchOpen(true)} /> )}
{children}
{/* 搜索弹窗 */} setSearchOpen(false)} /> {/* 记忆管理弹窗 */} setMemoryOpen(false)} />
); }