"use client"; import { useState } from "react"; import { cn } from "@/lib/utils"; import { useSidebarStore } from "@/lib/stores/sidebar-store"; import { ChatSectionHeader } from "./ChatSectionHeader"; import { ChatListRow } from "./ChatListRow"; import { usePathname } from "next/navigation"; export interface ChatSidebarProps { favorites: any[]; channels: any[]; dms: any[]; } export default function ChatSidebar({ favorites, channels, dms }: ChatSidebarProps) { const pathname = usePathname(); const isChatRoute = pathname.startsWith("/") && pathname.includes("/chat/"); if (!isChatRoute) return null; const [searchQuery, setSearchQuery] = useState(""); const [filter, setFilter] = useState(""); const expandedSections = useSidebarStore((state) => state.expandedSections); const toggleSection = useSidebarStore((state) => state.toggleSection); const filterItems = (items: any[], query: string) => { if (!query) return items; return items.filter( (item) => item.label.toLowerCase().includes(query.toLowerCase()) || item.preview?.toLowerCase().includes(query.toLowerCase()) ); }; const filteredFavorites = filterItems(favorites, searchQuery); const filteredChannels = filterItems(channels, searchQuery); const filteredDms = filterItems(dms, searchQuery); return (
setSearchQuery(e.target.value)} className="w-full mb-2 p-2 border border-sidebar-rounded bg-background" />
{/* Favorites Section */} toggleSection("favorites")} onAdd={() => console.log("Add favorite")} onMore={() => console.log("More favorites")} /> {expandedSections.favorites && (
{filteredFavorites.map((item) => ( ))}
)} {/* Channels Section */} toggleSection("channels")} onAdd={() => console.log("Add channel")} onMore={() => console.log("More channels")} /> {expandedSections.channels && (
{filteredChannels.map((item) => ( ))}
)} {/* DMs Section */} toggleSection("dms")} onAdd={() => console.log("Add DM")} onMore={() => console.log("More DMs")} /> {expandedSections.dms && (
{filteredDms.map((item) => ( ))}
)}
); }