From 263f0b723e0019d699ebff9fc81dfd27e0d2ebd5 Mon Sep 17 00:00:00 2001 From: "n8n-assistant[bot]" <100856346+n8n-assistant[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 17:55:26 +0300 Subject: [PATCH] fix(editor): Disable WF version menu only when all actions are unavailable (backport to release-candidate/2.18.x) (#29326) Co-authored-by: Daria --- .../WorkflowHeaderDraftPublishActions.test.ts | 15 +++++++++++++++ .../WorkflowHeaderDraftPublishActions.vue | 6 +++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.test.ts b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.test.ts index 9906b5d6bac..97fab6deadc 100644 --- a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.test.ts +++ b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.test.ts @@ -494,6 +494,21 @@ describe('WorkflowHeaderDraftPublishActions', () => { expect(queryByTestId('workflow-open-publish-modal-button')).toBeDisabled(); }); + it('should keep the version menu enabled when workflow is published with no changes', () => { + workflowsStore.workflowTriggerNodes = [triggerNode]; + workflowsStore.workflow.versionId = 'version-1'; + workflowDocumentStore.setActiveState({ + activeVersionId: 'version-1', + activeVersion: createMockActiveVersion('version-1'), + }); + uiStore.markStateClean(); + + const { getByTestId } = renderComponent(); + + expect(getByTestId('workflow-open-publish-modal-button')).toBeDisabled(); + expect(getByTestId('version-menu-button')).not.toBeDisabled(); + }); + it('should show publish button enabled when workflow has never been published (no active version)', () => { workflowsStore.workflowTriggerNodes = [triggerNode]; workflowsStore.workflow.versionId = 'version-1'; diff --git a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.vue b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.vue index d0b38ccb797..2861f7b9cd6 100644 --- a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.vue +++ b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.vue @@ -352,6 +352,10 @@ const versionMenuActions = computed>>( return actions; }); +const shouldDisableActionDropdown = computed(() => { + return versionMenuActions.value.every((action) => action.disabled); +}); + const onNameVersion = async () => { // If there are unsaved changes, save the workflow first if (uiStore.stateIsDirty || props.isNewWorkflow) { @@ -560,7 +564,7 @@ defineExpose({ :class="$style.groupButtonRight" variant="ghost" icon="chevron-down" - :disabled="!publishButtonConfig.enabled || shouldDisablePublishButton" + :disabled="shouldDisableActionDropdown" :aria-label="i18n.baseText('node.moreActions')" data-test-id="version-menu-button" />