From a0bd1498592a7333c9982b0f60569a8e3b35aba5 Mon Sep 17 00:00:00 2001 From: "mini.jeong" Date: Thu, 21 May 2026 19:01:32 +0900 Subject: [PATCH] fix(sidebar): pass showDelete to hide delete menu for non-admin members The ContextMenu component already has a showDelete prop with conditional rendering, but workflow-item and folder-item never pass it, leaving it at the default value of true. This causes write members to see an active Delete option that always fails with 403, since the DELETE API requires admin permission. Pass showDelete={userPermissions.canAdmin} from both workflow-item and folder-item so that non-admin users no longer see the Delete menu. Simplify disableDelete to only check canDeleteSelection and effectiveLocked, since permission gating is now handled by showDelete. --- .../workflow-list/components/folder-item/folder-item.tsx | 3 ++- .../workflow-list/components/workflow-item/workflow-item.tsx | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/folder-item/folder-item.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/folder-item/folder-item.tsx index 6b81862db0..f69b72c465 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/folder-item/folder-item.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/folder-item/folder-item.tsx @@ -612,7 +612,8 @@ export function FolderItem({ !userPermissions.canEdit || isDuplicatingSelection || !hasExportableContent } disableExport={!userPermissions.canEdit || isExporting || !hasExportableContent} - disableDelete={!userPermissions.canEdit || effectiveLocked || !canDeleteSelection} + showDelete={userPermissions.canAdmin} + disableDelete={effectiveLocked || !canDeleteSelection} onToggleLock={handleToggleLock} showLock={!isMixedSelection && selectedFolders.size <= 1} disableLock={!userPermissions.canAdmin || inheritedFolderLocked} diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/workflow-item/workflow-item.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/workflow-item/workflow-item.tsx index 1d8eb73f85..991a69868e 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/workflow-item/workflow-item.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/workflow-item/workflow-item.tsx @@ -524,7 +524,8 @@ export function WorkflowItem({ disableDuplicate={!userPermissions.canEdit || isDuplicatingSelection} disableExport={!userPermissions.canEdit} disableColorChange={!userPermissions.canEdit || effectiveLocked} - disableDelete={!userPermissions.canEdit || !canDeleteSelection || effectiveLocked} + showDelete={userPermissions.canAdmin} + disableDelete={!canDeleteSelection || effectiveLocked} onToggleLock={handleToggleLock} showLock={!isMixedSelection && selectedWorkflows.size <= 1} disableLock={!userPermissions.canAdmin || inheritedFolderLocked}