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 d8c78c4c79c..8b31f114571 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 @@ -132,7 +132,6 @@ describe('WorkflowHeaderDraftPublishActions', () => { const setupEnabledPublishButton = (overrides = {}) => { workflowsStore.workflowTriggerNodes = [triggerNode]; - workflowsStore.nodesIssuesExist = false; Object.assign(workflowsStore, overrides); }; 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 2861f7b9cd6..3754559d011 100644 --- a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.vue +++ b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowHeaderDraftPublishActions.vue @@ -93,6 +93,12 @@ const containsTrigger = computed((): boolean => { return foundTriggers.value.length > 0; }); +const nodesWithValidationIssues = computed( + () => workflowDocumentStore.value.nodesWithValidationIssues, +); + +const hasNodeIssues = computed(() => workflowDocumentStore.value.hasNodeValidationIssues); + type WorkflowPublishState = | 'not-published-not-eligible' // No trigger nodes or has errors | 'not-published-eligible' // Can be published for first time @@ -109,7 +115,7 @@ const workflowPublishState = computed((): WorkflowPublishState => { // Not published states if (!hasBeenPublished) { - const canPublish = containsTrigger.value && !workflowsStore.nodesIssuesExist; + const canPublish = containsTrigger.value && !hasNodeIssues.value; return canPublish ? 'not-published-eligible' : 'not-published-not-eligible'; } @@ -118,7 +124,7 @@ const workflowPublishState = computed((): WorkflowPublishState => { return 'published-invalid-trigger'; } - if (workflowsStore.nodesIssuesExist) { + if (hasNodeIssues.value) { return 'published-node-issues'; } @@ -207,15 +213,15 @@ const publishButtonConfig = computed(() => { if (props.isNewWorkflow) { return { text: i18n.baseText('workflows.publish'), - enabled: containsTrigger.value && !workflowsStore.nodesIssuesExist, + enabled: containsTrigger.value && !hasNodeIssues.value, showIndicator: false, indicatorClass: '', tooltip: !containsTrigger.value ? i18n.baseText('workflows.publishModal.noTriggerMessage') - : workflowsStore.nodesIssuesExist + : hasNodeIssues.value ? i18n.baseText('workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title', { - interpolate: { count: workflowsStore.nodesWithIssues.length }, - adjustToNumber: workflowsStore.nodesWithIssues.length, + interpolate: { count: nodesWithValidationIssues.value.length }, + adjustToNumber: nodesWithValidationIssues.value.length, }) : '', showVersionInfo: false, @@ -232,8 +238,8 @@ const publishButtonConfig = computed(() => { tooltip: !containsTrigger.value ? i18n.baseText('workflows.publishModal.noTriggerMessage') : i18n.baseText('workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title', { - interpolate: { count: workflowsStore.nodesWithIssues.length }, - adjustToNumber: workflowsStore.nodesWithIssues.length, + interpolate: { count: nodesWithValidationIssues.value.length }, + adjustToNumber: nodesWithValidationIssues.value.length, }), showVersionInfo: false, }, @@ -269,8 +275,8 @@ const publishButtonConfig = computed(() => { tooltip: i18n.baseText( 'workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title', { - interpolate: { count: workflowsStore.nodesWithIssues.length }, - adjustToNumber: workflowsStore.nodesWithIssues.length, + interpolate: { count: nodesWithValidationIssues.value.length }, + adjustToNumber: nodesWithValidationIssues.value.length, }, ), showVersionInfo: true, diff --git a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowPublishModal.test.ts b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowPublishModal.test.ts index e4938f80f01..8fb50f92282 100644 --- a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowPublishModal.test.ts +++ b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowPublishModal.test.ts @@ -144,9 +144,6 @@ describe('WorkflowPublishModal', () => { }, ]; - workflowsStore.nodesIssuesExist = false; - workflowsStore.nodesWithIssues = []; - mockPublishWorkflow.mockReset().mockResolvedValue({ success: true, errorHandled: false, diff --git a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowPublishModal.vue b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowPublishModal.vue index 5ce9469459e..ce0d15b3fb2 100644 --- a/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowPublishModal.vue +++ b/packages/frontend/editor-ui/src/app/components/MainHeader/WorkflowPublishModal.vue @@ -64,7 +64,11 @@ const wfHasAnyChanges = computed(() => { ); }); -const hasNodeIssues = computed(() => workflowsStore.nodesIssuesExist); +const nodesWithValidationIssues = computed( + () => workflowDocumentStore.value.nodesWithValidationIssues, +); + +const hasNodeIssues = computed(() => workflowDocumentStore.value.hasNodeValidationIssues); const inputsDisabled = computed(() => { return ( @@ -289,12 +293,12 @@ async function handlePublish() { {{ i18n.baseText('workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title', { - interpolate: { count: workflowsStore.nodesWithIssues.length }, - adjustToNumber: workflowsStore.nodesWithIssues.length, + interpolate: { count: nodesWithValidationIssues.length }, + adjustToNumber: nodesWithValidationIssues.length, }) }}