From 59de6bbb437b27a146b2f745a7598c4ae981debe Mon Sep 17 00:00:00 2001 From: Waleed Date: Fri, 10 Apr 2026 14:24:44 -0700 Subject: [PATCH] fix(trigger): show selector display names on canvas for trigger file/sheet selectors (#4097) * fix(trigger): show selector display names on canvas for trigger file/sheet selectors * fix(trigger): use isNonEmptyValue in canonical member scan to match visibility contract --- .../components/workflow-block/workflow-block.tsx | 2 +- apps/sim/lib/workflows/subblocks/visibility.ts | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx index 8db6eabe3a..6df9c6a5d7 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx @@ -534,7 +534,6 @@ const SubBlockRow = memo(function SubBlockRow({ workspaceId ) - const credentialId = dependencyValues.credential const knowledgeBaseId = dependencyValues.knowledgeBaseId const dropdownLabel = useMemo(() => { @@ -576,6 +575,7 @@ const SubBlockRow = memo(function SubBlockRow({ const collectionIdValue = resolveContextValue('collectionId') const spreadsheetIdValue = resolveContextValue('spreadsheetId') const fileIdValue = resolveContextValue('fileId') + const credentialId = dependencyValues.credential ?? resolveContextValue('oauthCredential') const { displayName: selectorDisplayName } = useSelectorDisplayName({ subBlock, diff --git a/apps/sim/lib/workflows/subblocks/visibility.ts b/apps/sim/lib/workflows/subblocks/visibility.ts index 867f60f750..fd9eb85b74 100644 --- a/apps/sim/lib/workflows/subblocks/visibility.ts +++ b/apps/sim/lib/workflows/subblocks/visibility.ts @@ -286,7 +286,18 @@ export function resolveDependencyValue( const mode = resolveCanonicalMode(group, values, overrides) const canonicalResult = mode === 'advanced' ? (advancedValue ?? basicValue) : (basicValue ?? advancedValue) - return canonicalResult ?? values[dependencyKey] + + if (canonicalResult != null) return canonicalResult + + for (const [memberId, memberCanonicalId] of Object.entries( + canonicalIndex.canonicalIdBySubBlockId + )) { + if (memberCanonicalId === canonicalId && isNonEmptyValue(values[memberId])) { + return values[memberId] + } + } + + return values[dependencyKey] } /**