diff --git a/surfsense_web/components/assistant-ui/connector-popup.tsx b/surfsense_web/components/assistant-ui/connector-popup.tsx index 5560a3c04..621861529 100644 --- a/surfsense_web/components/assistant-ui/connector-popup.tsx +++ b/surfsense_web/components/assistant-ui/connector-popup.tsx @@ -292,6 +292,7 @@ export const ConnectorIndicator: FC = () => { = ({ onSearchChange(e.target.value)} /> + {searchQuery && ( + + )} diff --git a/surfsense_web/components/assistant-ui/connector-popup/tabs/active-connectors-tab.tsx b/surfsense_web/components/assistant-ui/connector-popup/tabs/active-connectors-tab.tsx index c17afc84f..2c50530ce 100644 --- a/surfsense_web/components/assistant-ui/connector-popup/tabs/active-connectors-tab.tsx +++ b/surfsense_web/components/assistant-ui/connector-popup/tabs/active-connectors-tab.tsx @@ -14,6 +14,7 @@ import { getDocumentCountForConnector } from "../utils/connector-document-mappin import { TabsContent } from "@/components/ui/tabs"; interface ActiveConnectorsTabProps { + searchQuery: string; hasSources: boolean; totalSourceCount: number; activeDocumentTypes: Array<[string, number]>; @@ -26,6 +27,7 @@ interface ActiveConnectorsTabProps { } export const ActiveConnectorsTab: FC = ({ + searchQuery, hasSources, activeDocumentTypes, connectors, @@ -74,20 +76,34 @@ export const ActiveConnectorsTab: FC = ({ type: docType, count, label: getDocumentTypeLabel(docType), - })); + })) + .filter((doc) => { + if (!searchQuery) return true; + return doc.label.toLowerCase().includes(searchQuery.toLowerCase()); + }); + + // Filter connectors based on search query + const filteredConnectors = connectors.filter((connector) => { + if (!searchQuery) return true; + const searchLower = searchQuery.toLowerCase(); + return ( + connector.name.toLowerCase().includes(searchLower) || + connector.connector_type.toLowerCase().includes(searchLower) + ); + }); return ( {hasSources ? (
{/* Active Connectors Section */} - {connectors.length > 0 && ( + {filteredConnectors.length > 0 && (

Active Connectors

- {connectors.map((connector) => { + {filteredConnectors.map((connector) => { const isIndexing = indexingConnectorIds.has(connector.id); const activeTask = logsSummary?.active_tasks?.find( (task: LogActiveTask) => task.connector_id === connector.id