From 18ce599c81372f3b3462f2e0456f724a6b6cab92 Mon Sep 17 00:00:00 2001 From: Manoj Aggarwal Date: Fri, 16 Jan 2026 16:13:20 -0800 Subject: [PATCH] fix electric fallback --- .../components/assistant-ui/connector-popup.tsx | 12 ++++++------ .../hooks/use-connector-dialog.ts | 3 +++ .../tabs/active-connectors-tab.tsx | 5 +++-- .../connector-popup/tabs/all-connectors-tab.tsx | 3 ++- surfsense_web/hooks/use-connectors-electric.ts | 17 +++++++++++------ 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/surfsense_web/components/assistant-ui/connector-popup.tsx b/surfsense_web/components/assistant-ui/connector-popup.tsx index afb762fe5..90113707e 100644 --- a/surfsense_web/components/assistant-ui/connector-popup.tsx +++ b/surfsense_web/components/assistant-ui/connector-popup.tsx @@ -99,15 +99,15 @@ export const ConnectorIndicator: FC = () => { refreshConnectors: refreshConnectorsElectric, } = useConnectorsElectric(searchSpaceId); - // Fallback to API if Electric fails or is not available - const connectors = - connectorsFromElectric.length > 0 || !connectorsError - ? connectorsFromElectric - : allConnectors || []; + // Fallback to API if Electric is not available or fails + // Use Electric data if: 1) we have data, or 2) still loading without error + // Use API data if: Electric failed (has error) or finished loading with no data + const useElectricData = connectorsFromElectric.length > 0 || (connectorsLoading && !connectorsError); + const connectors = useElectricData ? connectorsFromElectric : allConnectors || []; // Manual refresh function that works with both Electric and API const refreshConnectors = async () => { - if (connectorsFromElectric.length > 0 || !connectorsError) { + if (useElectricData) { await refreshConnectorsElectric(); } else { // Fallback: use allConnectors from useConnectorDialog (which uses connectorsAtom) diff --git a/surfsense_web/components/assistant-ui/connector-popup/hooks/use-connector-dialog.ts b/surfsense_web/components/assistant-ui/connector-popup/hooks/use-connector-dialog.ts index fd6c63658..1344abfce 100644 --- a/surfsense_web/components/assistant-ui/connector-popup/hooks/use-connector-dialog.ts +++ b/surfsense_web/components/assistant-ui/connector-popup/hooks/use-connector-dialog.ts @@ -715,6 +715,9 @@ export const useConnectorDialog = () => { : `${connectorTitle} connected successfully!`; toast.success(successMessage); + // Refresh connectors list before closing modal + await refetchAllConnectors(); + // Close modal and return to main view const url = new URL(window.location.href); url.searchParams.delete("modal"); 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 965add11c..1e25d24a0 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 @@ -240,6 +240,7 @@ export const ActiveConnectorsTab: FC = ({ connector.connector_type, documentTypeCounts ); + const isMCPConnector = connector.connector_type === "MCP_CONNECTOR"; return (
= ({ Syncing

- ) : ( + ) : !isMCPConnector ? (

{formatDocumentCount(documentCount)}

- )} + ) : null}