From 8906439a7e0eb2df53501e3505d97b9aec6d2b41 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Sun, 15 Mar 2026 01:01:11 -0700 Subject: [PATCH] fix(notifications): credentials connection notifs showing up in right resource (#3599) * fix(notifications): credentials connection notifs showing up in right resource * fix new label * address comments * reset ref correctly: --- .../[workspaceId]/knowledge/[id]/base.tsx | 2 + .../add-connector-modal.tsx | 27 +++- .../connectors-section/connectors-section.tsx | 19 ++- .../app/workspace/[workspaceId]/layout.tsx | 5 +- .../integrations/integrations-manager.tsx | 73 +++++++-- .../credential-selector.tsx | 5 +- .../[workspaceId]/w/[workflowId]/workflow.tsx | 64 +------- apps/sim/hooks/use-oauth-return.ts | 147 ++++++++++++++++++ apps/sim/lib/credentials/client-state.ts | 59 +++++++ 9 files changed, 315 insertions(+), 86 deletions(-) create mode 100644 apps/sim/hooks/use-oauth-return.ts diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx index 369b90bb2a..b813178612 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx @@ -72,6 +72,7 @@ import { useUpdateKnowledgeBase, } from '@/hooks/queries/kb/knowledge' import { useInlineRename } from '@/hooks/use-inline-rename' +import { useOAuthReturnForKBConnectors } from '@/hooks/use-oauth-return' const logger = createLogger('KnowledgeBase') @@ -189,6 +190,7 @@ export function KnowledgeBase({ }: KnowledgeBaseProps) { const params = useParams() const workspaceId = propWorkspaceId || (params.workspaceId as string) + useOAuthReturnForKBConnectors(id) const { removeKnowledgeBase } = useKnowledgeBasesList(workspaceId, { enabled: false }) const userPermissions = useUserPermissionsContext() diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/add-connector-modal/add-connector-modal.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/add-connector-modal/add-connector-modal.tsx index 5d3a7a9337..17048ab27e 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/add-connector-modal/add-connector-modal.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/add-connector-modal/add-connector-modal.tsx @@ -20,6 +20,7 @@ import { Tooltip, } from '@/components/emcn' import { useSession } from '@/lib/auth/auth-client' +import { consumeOAuthReturnContext, writeOAuthReturnContext } from '@/lib/credentials/client-state' import { getCanonicalScopesForProvider, getProviderIdFromServiceId, @@ -288,8 +289,25 @@ export function AddConnectorModal({ open, onOpenChange, knowledgeBaseId }: AddCo return } + writeOAuthReturnContext({ + origin: 'kb-connectors', + knowledgeBaseId, + displayName, + providerId: connectorProviderId, + preCount: credentials.length, + workspaceId, + requestedAt: Date.now(), + }) + setShowOAuthModal(true) - }, [connectorConfig, connectorProviderId, workspaceId, session?.user?.name]) + }, [ + connectorConfig, + connectorProviderId, + workspaceId, + session?.user?.name, + knowledgeBaseId, + credentials.length, + ]) const filteredEntries = useMemo(() => { const term = searchTerm.toLowerCase().trim() @@ -575,11 +593,14 @@ export function AddConnectorModal({ open, onOpenChange, knowledgeBaseId }: AddCo {connectorConfig && connectorConfig.auth.mode === 'oauth' && connectorProviderId && ( setShowOAuthModal(false)} + onClose={() => { + consumeOAuthReturnContext() + setShowOAuthModal(false) + }} provider={connectorProviderId} toolName={connectorConfig.name} requiredScopes={getCanonicalScopesForProvider(connectorProviderId)} - newScopes={connectorConfig.auth.requiredScopes || []} + newScopes={[]} serviceId={connectorConfig.auth.provider} /> )} 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 58884a0de3..3abc3d5082 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 @@ -27,6 +27,7 @@ import { Tooltip, } from '@/components/emcn' import { cn } from '@/lib/core/utils/cn' +import { consumeOAuthReturnContext, writeOAuthReturnContext } from '@/lib/credentials/client-state' import { getCanonicalScopesForProvider, getProviderIdFromServiceId, @@ -444,7 +445,18 @@ function ConnectorCard({ {canEdit && (