From 3eb65e08c4f22334aeae172504991a688273528e Mon Sep 17 00:00:00 2001 From: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com> Date: Wed, 16 Aug 2023 13:33:48 +0200 Subject: [PATCH] fix: Fix lag when node parameters are updated (#6941) fix: Fix lag when node parameteres are updated --- .../editor-ui/src/components/NodeSettings.vue | 12 ++++++------ packages/editor-ui/src/mixins/nodeHelpers.ts | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/editor-ui/src/components/NodeSettings.vue b/packages/editor-ui/src/components/NodeSettings.vue index 6b649decb..23c8acfb3 100644 --- a/packages/editor-ui/src/components/NodeSettings.vue +++ b/packages/editor-ui/src/components/NodeSettings.vue @@ -248,7 +248,7 @@ export default defineComponent({ return ''; }, nodeTypeDescription(): string { - if (this.nodeType && this.nodeType.description) { + if (this.nodeType?.description) { const shortNodeType = this.$locale.shortNodeType(this.nodeType.name); return this.$locale.headerText({ @@ -551,7 +551,7 @@ export default defineComponent({ const { [lastNamePart]: removedNodeValue, ...remainingNodeValues } = tempValue; tempValue = remainingNodeValues; - if (isArray === true && (tempValue as INodeParameters[]).length === 0) { + if (isArray && (tempValue as INodeParameters[]).length === 0) { // If a value from an array got delete and no values are left // delete also the parent lastNamePart = nameParts.pop(); @@ -717,8 +717,8 @@ export default defineComponent({ this.workflowsStore.setNodeParameters(updateInformation); - this.updateNodeParameterIssues(node, nodeType); - this.updateNodeCredentialIssues(node); + this.updateNodeParameterIssuesByName(node.name); + this.updateNodeCredentialIssuesByName(node.name); } } else if (parameterData.name.startsWith('parameters.')) { // A node parameter changed @@ -800,8 +800,8 @@ export default defineComponent({ oldNodeParameters, }); - this.updateNodeParameterIssues(node, nodeType); - this.updateNodeCredentialIssues(node); + this.updateNodeParameterIssuesByName(node.name); + this.updateNodeCredentialIssuesByName(node.name); this.$telemetry.trackNodeParametersValuesChange(nodeType.name, parameterData); } else { // A property on the node itself changed diff --git a/packages/editor-ui/src/mixins/nodeHelpers.ts b/packages/editor-ui/src/mixins/nodeHelpers.ts index 073c5f5e2..ad517e4ad 100644 --- a/packages/editor-ui/src/mixins/nodeHelpers.ts +++ b/packages/editor-ui/src/mixins/nodeHelpers.ts @@ -181,6 +181,14 @@ export const nodeHelpers = defineComponent({ } }, + updateNodeCredentialIssuesByName(name: string): void { + const node = this.workflowsStore.getNodeByName(name); + + if (node) { + this.updateNodeCredentialIssues(node); + } + }, + // Updates the credential-issues of the node updateNodeCredentialIssues(node: INodeUi): void { const fullNodeIssues: INodeIssues | null = this.getNodeCredentialIssues(node); @@ -197,6 +205,14 @@ export const nodeHelpers = defineComponent({ }); }, + updateNodeParameterIssuesByName(name: string): void { + const node = this.workflowsStore.getNodeByName(name); + + if (node) { + this.updateNodeParameterIssues(node); + } + }, + // Updates the parameter-issues of the node updateNodeParameterIssues(node: INodeUi, nodeType?: INodeTypeDescription): void { if (nodeType === undefined) {