From 29d4fde2c0fe8deaad143a9f74481034af61d84e Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Mon, 6 Jul 2026 10:37:21 +0530 Subject: [PATCH] feat(chats): add filter dropdown for active and archived chats in AllChatsSidebar - Implemented a dropdown menu to filter between active and archived chats. - Removed the previous tabbed interface for filtering and replaced it with a more intuitive dropdown. - Updated layout and styling for better user experience. --- .../layout/ui/sidebar/AllChatsSidebar.tsx | 79 ++++++++++--------- 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/surfsense_web/components/layout/ui/sidebar/AllChatsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/AllChatsSidebar.tsx index 0a15ecde5..8e065f5a5 100644 --- a/surfsense_web/components/layout/ui/sidebar/AllChatsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/AllChatsSidebar.tsx @@ -4,7 +4,8 @@ import { useQuery, useQueryClient } from "@tanstack/react-query"; import { useSetAtom } from "jotai"; import { ArchiveIcon, - MessageCircleMore, + Check, + ChevronDown, MoreHorizontal, Pencil, RotateCcwIcon, @@ -19,7 +20,6 @@ import { useTranslations } from "next-intl"; import { useCallback, useMemo, useRef, useState } from "react"; import { toast } from "sonner"; import { removeChatTabAtom } from "@/atoms/tabs/tabs.atom"; -import { Tabs, TabsList, TabsTrigger } from "@/components/ui/animated-tabs"; import { Button } from "@/components/ui/button"; import { Dialog, @@ -239,14 +239,48 @@ function AllChatsContent({ searchSpaceId, className }: AllChatsContentProps) { const isLoading = isSearchMode ? isLoadingSearch : isLoadingThreads; const error = isSearchMode ? searchError : threadsError; - const activeCount = activeChats.length; - const archivedCount = archivedChats.length; + const selectedFilterLabel = showArchived ? "Archived" : "Active"; return ( -