diff --git a/surfsense_web/components/assistant-ui/thread.tsx b/surfsense_web/components/assistant-ui/thread.tsx index 7ef0f7f2a..da23553f8 100644 --- a/surfsense_web/components/assistant-ui/thread.tsx +++ b/surfsense_web/components/assistant-ui/thread.tsx @@ -14,7 +14,7 @@ import { AlertCircle, ArrowDownIcon, ArrowUpIcon, - Cable, + Unplug, CheckIcon, ChevronLeftIcon, ChevronRightIcon, @@ -35,6 +35,7 @@ import { sidebarSelectedDocumentsAtom, } from "@/atoms/chat/mentioned-documents.atom"; import { connectorsAtom } from "@/atoms/connectors/connector-query.atoms"; +import { documentTypeCountsAtom } from "@/atoms/documents/document-query.atoms"; import { documentsSidebarOpenAtom } from "@/atoms/documents/ui.atoms"; import { membersAtom } from "@/atoms/members/members-query.atoms"; import { @@ -486,6 +487,11 @@ const ComposerAction: FC = ({ isBlockedByOtherUser = false const { openDialog: openUploadDialog } = useDocumentUploadDialog(); const { data: connectors } = useAtomValue(connectorsAtom); const connectorCount = connectors?.length ?? 0; + const { data: typeCounts } = useAtomValue(documentTypeCountsAtom); + const totalDocuments = useMemo( + () => (typeCounts ? Object.values(typeCounts).reduce((sum, n) => sum + n, 0) : 0), + [typeCounts] + ); const isComposerTextEmpty = useAssistantState(({ composer }) => { const text = composer.text?.trim() || ""; @@ -542,23 +548,25 @@ const ComposerAction: FC = ({ isBlockedByOtherUser = false Upload files - { - setAddMenuOpen(false); - setDocumentsSidebarOpen(true); - }} - > - - Documents - + {totalDocuments > 0 && ( + { + setAddMenuOpen(false); + setDocumentsSidebarOpen(true); + }} + > + + Manage Documents + + )} { setAddMenuOpen(false); connectorRef.current?.open(); }} > - - Manage connectors + + {connectorCount > 0 ? "Manage connectors" : "Connect your tools"} {connectorCount > 0 && ( {connectorCount} diff --git a/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx index baddfa151..9e929b53b 100644 --- a/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx @@ -1,7 +1,7 @@ "use client"; import { useAtom, useAtomValue, useSetAtom } from "jotai"; -import { ChevronLeft, ChevronRight } from "lucide-react"; +import { ChevronLeft, ChevronRight, Unplug } from "lucide-react"; import { useParams } from "next/navigation"; import { useTranslations } from "next-intl"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; @@ -220,9 +220,10 @@ export function DocumentsSidebar({ open, onOpenChange, isDocked = false, onDocke onClick={() => setConnectorDialogOpen(true)} className="flex items-center gap-2 min-w-0 flex-1 text-left" > - - Connect your tools - + + + Connect your tools + {SHOWCASE_CONNECTORS.map(({ type, label }, i) => (