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 (
{title} ({count})
{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 ( <> } />
); }