From 346d977c394ce234d46ff6419f4fd9d5f6440c33 Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Thu, 1 Oct 2026 15:15:41 +0200 Subject: [PATCH] fix: closing the pipeline pane closes its modal instead of leaving it blank Co-Authored-By: Claude Opus 5.5 (1M context) --- .../assets/AssetGraph/PipelineGraphEditor.svelte | 16 ++++++++++++++-- .../sessions/PipelineEditorView.svelte | 3 ++- .../(logged)/pipeline/[folder]/+page.svelte | 3 ++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/frontend/src/lib/components/assets/AssetGraph/PipelineGraphEditor.svelte b/frontend/src/lib/components/assets/AssetGraph/PipelineGraphEditor.svelte index 21e4fb1e37..95c5a435f3 100644 --- a/frontend/src/lib/components/assets/AssetGraph/PipelineGraphEditor.svelte +++ b/frontend/src/lib/components/assets/AssetGraph/PipelineGraphEditor.svelte @@ -332,6 +332,11 @@ function openPanelModalFromGraph(e: MouseEvent) { if (selectableNodeAt(e)) panelModalOpen = true } + // A button in the pane that ends it closes the modal in the same update: left to + // the effect above, the modal would first render the pane without its selection. + function closePanelModal() { + if (panelMode === 'modal') panelModalOpen = false + } function handleCanvasSelect(s: AssetGraphSelection | undefined, opts?: { open?: boolean }) { onSelect(s) if (opts?.open && s && panelMode === 'modal') panelModalOpen = true @@ -714,8 +719,15 @@ onAssetsChange={editor.handleAssetsChange} onContentChange={editor.handleContentChange} onDraftPersist={editor.handleDraftPersist} - onclose={onClose} - onHide={onTogglePanelHidden} + onclose={() => { + closePanelModal() + onClose() + }} + onHide={onTogglePanelHidden && + (() => { + closePanelModal() + onTogglePanelHidden() + })} {onDiscard} {onDraftSaved} {onPersistedSaved} diff --git a/frontend/src/lib/components/sessions/PipelineEditorView.svelte b/frontend/src/lib/components/sessions/PipelineEditorView.svelte index d92f856b41..61612f8191 100644 --- a/frontend/src/lib/components/sessions/PipelineEditorView.svelte +++ b/frontend/src/lib/components/sessions/PipelineEditorView.svelte @@ -509,7 +509,8 @@ eventLogEvents={activeRunnables.events} onRunProducer={runProducer} onRunByPath={(path, args) => runNode(path, args)} - inputsOnly={uploadInputsPath !== undefined && uploadInputsPath === pe.openScriptPath} + inputsOnly={uploadInputsPath !== undefined && + (pe.openScriptPath === undefined || uploadInputsPath === pe.openScriptPath)} onRunInputs={(path, args) => runNode(path, args)} onShowScript={() => (uploadInputsPath = undefined)} canRunByPath diff --git a/frontend/src/routes/(root)/(logged)/pipeline/[folder]/+page.svelte b/frontend/src/routes/(root)/(logged)/pipeline/[folder]/+page.svelte index d4636f05ca..9795f4396a 100644 --- a/frontend/src/routes/(root)/(logged)/pipeline/[folder]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/pipeline/[folder]/+page.svelte @@ -3000,7 +3000,8 @@ readyDataUploadPaths={dataUploads.readyPaths} runFormInitialArgs={openScriptPath ? dataUploads.argsFor(openScriptPath) : undefined} onRunFormArgsChange={dataUploads.stage} - inputsOnly={uploadInputsPath !== undefined && uploadInputsPath === openScriptPath} + inputsOnly={uploadInputsPath !== undefined && + (openScriptPath === undefined || uploadInputsPath === openScriptPath)} onRunInputs={runUploadInputs} onShowScript={() => (uploadInputsPath = undefined)} onSelect={handleCanvasSelect}