"use client";
import Link from "next/link";
import { usePathname } from "next/navigation";
import { useEffect, useState } from "react";
import { FileText, PenSquare, MessageSquare, Trash2, Rss, Link2, MessageCircle, Image, Menu, X, Bot, LogOut, Users } from "lucide-react";
import ThemeToggle from "./ThemeToggle";
const navItems = [
{ href: "/", label: "文章", icon: FileText, roles: ["admin", "user"] },
{ href: "/edit", label: "撰写", icon: PenSquare, roles: ["admin", "user"] },
{ href: "/comments", label: "评论", icon: MessageSquare, roles: ["admin", "user"] },
{ href: "/feeds", label: "订阅源", icon: Rss, roles: ["admin"] },
{ href: "/links", label: "友链", icon: Link2, roles: ["admin"] },
{ href: "/images", label: "图片", icon: Image, roles: ["admin", "user"] },
{ href: "/wechat", label: "公众号", icon: MessageCircle, roles: ["admin"] },
{ href: "/recycle", label: "回收站", icon: Trash2, roles: ["admin", "user"] },
{ href: "/bot", label: "Bot", icon: Bot, roles: ["admin"] },
];
export default function Sidebar() {
const pathname = usePathname();
const [open, setOpen] = useState(false);
const [isAdmin, setIsAdmin] = useState(false);
const [userRole, setUserRole] = useState("user");
useEffect(() => { setOpen(false); }, [pathname]);
useEffect(() => {
try {
const u = JSON.parse(localStorage.getItem("wauth_user") || "{}");
setIsAdmin(u.role === "admin");
setUserRole(u.role || "user");
} catch {}
}, []);
useEffect(() => {
if (!open) return;
const original = document.body.style.overflow;
document.body.style.overflow = "hidden";
return () => { document.body.style.overflow = original; };
}, [open]);
const isActive = (href: string) => {
if (href === "/") return pathname === "/";
return pathname.startsWith(href);
};
return (
<>