import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet";
import { Button } from "@/components/ui/button";
import { ScrollArea } from "@/components/ui/scroll-area";
import { Menu, LayoutDashboard, Plus, MoreVertical, User, Search, Wrench, Settings } from "lucide-react";
import { useState, useRef, useEffect } from "react";
import { Link, useNavigate } from "react-router-dom";
import { useAuthStore } from "@/store/authStore";
const threadItems = ["我叫", "年龄最大的是谁", "有哪些字段", "文件中有些什么字段"];
function Section({
title,
count,
items,
}: {
title: string;
count: number;
items: string[];
}) {
return (
{items.map((item) => (
))}
);
}
function SidebarBody() {
const navigate = useNavigate();
const { user, logout } = useAuthStore();
const [showUserMenu, setShowUserMenu] = useState(false);
const menuRef = useRef(null);
useEffect(() => {
function handleClickOutside(event: MouseEvent) {
if (menuRef.current && !menuRef.current.contains(event.target as Node)) {
setShowUserMenu(false);
}
}
document.addEventListener("mousedown", handleClickOutside);
return () => document.removeEventListener("mousedown", handleClickOutside);
}, []);
const handleLogout = () => {
logout();
navigate("/login");
};
return (
{/* Header */}
{/* User Settings Popover Menu */}
{showUserMenu && (
{user?.username}
{user?.email}
{user?.is_admin && (
)}
)}
);
}
export function Sidebar() {
const [isOpen, setIsOpen] = useState(false);
return (
<>
} />
>
);
}