From 3f908d6121b8e4339b6aae051c8c6f45b3b41f88 Mon Sep 17 00:00:00 2001 From: waleed Date: Sat, 31 Jan 2026 18:45:42 -0800 Subject: [PATCH] fix code block disabled state, allow unlock from editor --- .../panel/components/editor/editor.tsx | 23 +++++++++++++++---- .../components/emcn/components/code/code.tsx | 4 ++-- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx index e2ed145ed..742e17c0c 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx @@ -11,6 +11,7 @@ import { Loader2, Lock, Pencil, + Unlock, } from 'lucide-react' import { useParams } from 'next/navigation' import { useShallow } from 'zustand/react/shallow' @@ -227,6 +228,7 @@ export function Editor() { collaborativeSetBlockCanonicalMode, collaborativeUpdateBlockName, collaborativeToggleBlockAdvancedMode, + collaborativeBatchToggleLocked, } = useCollaborativeWorkflow() // Advanced mode toggle handler @@ -366,16 +368,27 @@ export function Editor() { )}
- {/* Locked indicator */} + {/* Locked indicator - clickable to unlock if user has admin permissions */} {isLocked && currentBlock && ( -
- -
+ {userPermissions.canAdmin ? ( + + ) : ( +
+ +
+ )}
-

Block is locked

+

{userPermissions.canAdmin ? 'Unlock block' : 'Block is locked'}

)} diff --git a/apps/sim/components/emcn/components/code/code.tsx b/apps/sim/components/emcn/components/code/code.tsx index 58250adc1..e0a40846b 100644 --- a/apps/sim/components/emcn/components/code/code.tsx +++ b/apps/sim/components/emcn/components/code/code.tsx @@ -458,8 +458,8 @@ export function getCodeEditorProps(options?: { 'caret-[var(--text-primary)] dark:caret-white', // Font smoothing '[-webkit-font-smoothing:antialiased] [-moz-osx-font-smoothing:grayscale]', - // Disable interaction for streaming/preview - (isStreaming || isPreview) && 'pointer-events-none' + // Disable interaction for streaming/preview/disabled + (isStreaming || isPreview || disabled) && 'pointer-events-none' ), } }