diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx index 5e80e1f8cd3..bc1395ca228 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx @@ -79,6 +79,7 @@ export function ConnectorsSection({ const [deleteTarget, setDeleteTarget] = useState(null) const [editingConnector, setEditingConnector] = useState(null) const [error, setError] = useState(null) + const [syncingConnectorId, setSyncingConnectorId] = useState(null) const syncTriggeredAt = useRef>({}) const cooldownTimers = useRef>>(new Set()) @@ -103,12 +104,14 @@ export function ConnectorsSection({ if (isSyncOnCooldown(connectorId)) return syncTriggeredAt.current[connectorId] = Date.now() + setSyncingConnectorId(connectorId) triggerSync( { knowledgeBaseId, connectorId }, { onSuccess: () => { setError(null) + setSyncingConnectorId(null) const timer = setTimeout(() => { cooldownTimers.current.delete(timer) forceUpdate((n) => n + 1) @@ -118,6 +121,7 @@ export function ConnectorsSection({ onError: (err) => { logger.error('Sync trigger failed', { error: err.message }) setError(err.message) + setSyncingConnectorId(null) delete syncTriggeredAt.current[connectorId] forceUpdate((n) => n + 1) }, @@ -164,6 +168,7 @@ export function ConnectorsSection({ knowledgeBaseId={knowledgeBaseId} canEdit={canEdit} isSyncing={isSyncing} + isSyncPending={syncingConnectorId === connector.id} isUpdating={isUpdating} syncCooldown={isSyncOnCooldown(connector.id)} onSync={() => handleSync(connector.id)} @@ -251,6 +256,7 @@ interface ConnectorCardProps { knowledgeBaseId: string canEdit: boolean isSyncing: boolean + isSyncPending: boolean isUpdating: boolean syncCooldown: boolean onSync: () => void @@ -265,6 +271,7 @@ function ConnectorCard({ knowledgeBaseId, canEdit, isSyncing, + isSyncPending, isUpdating, syncCooldown, onSync, @@ -306,13 +313,13 @@ function ConnectorCard({ {Icon && }
- + {connectorDef?.name || connector.connectorType} + {(isSyncPending || connector.status === 'syncing') && ( + + )} - {connector.status === 'syncing' && ( - - )} {statusConfig.label}