"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 } from "lucide-react"; const navItems = [ { href: "/", label: "仪表盘", icon: LayoutDashboard }, { href: "/trades", label: "成交流", icon: Activity }, { 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: "/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)}>
)} ); }