From b7f6407e007683f65f79a74a39abe6ce458916eb 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 6b81862db07..f69b72c4655 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 1d8eb73f856..991a69868e1 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}