"use client"; import { useState } from "react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { useAuth } from "@/lib/auth"; import { LayoutDashboard, Info, Menu, X, Zap, LogIn, UserPlus, ChevronLeft, ChevronRight, Activity, LogOut, Crosshair, Monitor, LineChart, Sparkles, Bolt } from "lucide-react"; const navItems = [ { href: "/", label: "仪表盘", icon: LayoutDashboard }, { href: "/trades", label: "成交流", icon: Activity }, { href: "/live", label: "⚡ 实盘交易", icon: Bolt, section: "── 实盘 ──" }, { href: "/signals", label: "V5.1 信号引擎", icon: Crosshair, section: "── V5.1 ──" }, { href: "/paper", label: "V5.1 模拟盘", icon: LineChart }, { href: "/signals-v52", label: "V5.2 信号引擎", icon: Sparkles, section: "── V5.2 ──" }, { href: "/paper-v52", label: "V5.2 模拟盘", icon: LineChart }, { href: "/signals-v53", label: "V5.3 信号引擎", icon: Zap, section: "── V5.3 ──" }, { href: "/paper-v53", label: "V5.3 模拟盘", icon: LineChart }, { href: "/server", label: "服务器", icon: Monitor }, { href: "/about", label: "说明", icon: Info }, ]; export default function Sidebar() { const pathname = usePathname(); const [collapsed, setCollapsed] = useState(false); const [mobileOpen, setMobileOpen] = useState(false); const { user, isLoggedIn, logout } = useAuth(); const SidebarContent = ({ mobile = false }: { mobile?: boolean }) => (
{/* Logo */}
{(!collapsed || mobile) && ( Arbitrage
Engine
)}
{/* Nav */} {/* Collapse toggle (desktop only) */} {!mobile && ( )}
); return ( <> {/* Desktop sidebar */} {/* Mobile top bar */}
Arbitrage Engine
{isLoggedIn ? ( ) : ( <> 登录 注册 )}
{/* Mobile drawer */} {mobileOpen && (
setMobileOpen(false)}>
)} ); }