// src/components/sidebar/app-sidebar.tsx import { Sidebar, SidebarContent, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuItem, SidebarMenuButton, SidebarHeader, } from "@/components/ui/sidebar"; import { routes } from "@/routes"; import { Link, useLocation, useNavigate } from "react-router-dom"; import { MessageSquare, Plus, Trash2 } from "lucide-react"; import { Button } from "../ui/button"; import { useLiveQuery } from "dexie-react-hooks"; import { ChatHistoryDB } from "@/lib/chat/memory"; import { useState } from "react"; import { toast } from "sonner"; import { IChatSession } from "@/lib/chat/types"; export function AppSidebar() { const location = useLocation(); const navigate = useNavigate(); const chats = useLiveQuery(async () => { const sessions = await ChatHistoryDB.getInstance().sessions.toArray(); return sessions.sort((a: IChatSession, b: IChatSession) => b.updatedAt - a.updatedAt); }); const [hoveringId, setHoveringId] = useState(null); return ( Sheer Application {routes.map((route) => ( {route.icon} {route.label} ))} Chats {chats?.map((chat: IChatSession) => ( setHoveringId(chat.id)} onMouseLeave={() => setHoveringId(null)} >
{chat.name}
))}
); }