mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-21 02:56:40 -08:00
fix(editor): Fix bug causing node issues to not be assigned before first interaction (no-changelog) (#10980)
This commit is contained in:
parent
136d491325
commit
574cff16ed
|
@ -33,6 +33,7 @@ async function createPiniaWithActiveNode() {
|
|||
|
||||
nodeTypesStore.setNodeTypes(defaultNodeDescriptions);
|
||||
workflowsStore.workflow = workflow;
|
||||
workflowsStore.nodeMetadata[node.name] = { pristine: true };
|
||||
ndvStore.activeNodeName = node.name;
|
||||
|
||||
await useSettingsStore().getSettings();
|
||||
|
|
|
@ -373,7 +373,7 @@ export function useCanvasMapping({
|
|||
subtitle: nodeSubtitleById.value[node.id] ?? '',
|
||||
type: node.type,
|
||||
typeVersion: node.typeVersion,
|
||||
disabled: !!node.disabled,
|
||||
disabled: node.disabled,
|
||||
inputs: nodeInputsById.value[node.id] ?? [],
|
||||
outputs: nodeOutputsById.value[node.id] ?? [],
|
||||
connections: {
|
||||
|
|
|
@ -589,6 +589,12 @@ export function useCanvasOperations({ router }: { router: ReturnType<typeof useR
|
|||
|
||||
workflowsStore.addNode(nodeData);
|
||||
|
||||
workflowsStore.setNodePristine(nodeData.name, true);
|
||||
|
||||
nodeHelpers.updateNodeParameterIssues(nodeData);
|
||||
nodeHelpers.updateNodeCredentialIssues(nodeData);
|
||||
nodeHelpers.updateNodeInputIssues(nodeData);
|
||||
|
||||
if (!options.isAutoAdd) {
|
||||
createConnectionToLastInteractedWithNode(nodeData, options);
|
||||
}
|
||||
|
@ -606,8 +612,6 @@ export function useCanvasOperations({ router }: { router: ReturnType<typeof useR
|
|||
}
|
||||
});
|
||||
|
||||
workflowsStore.setNodePristine(nodeData.name, true);
|
||||
|
||||
return nodeData;
|
||||
}
|
||||
|
||||
|
@ -1145,8 +1149,10 @@ export function useCanvasOperations({ router }: { router: ReturnType<typeof useR
|
|||
connection: mappedConnection,
|
||||
});
|
||||
|
||||
nodeHelpers.updateNodeInputIssues(sourceNode);
|
||||
nodeHelpers.updateNodeInputIssues(targetNode);
|
||||
void nextTick(() => {
|
||||
nodeHelpers.updateNodeInputIssues(sourceNode);
|
||||
nodeHelpers.updateNodeInputIssues(targetNode);
|
||||
});
|
||||
|
||||
uiStore.stateIsDirty = true;
|
||||
}
|
||||
|
|
|
@ -989,15 +989,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => {
|
|||
|
||||
function updateNodeAtIndex(nodeIndex: number, nodeData: Partial<INodeUi>): void {
|
||||
if (nodeIndex !== -1) {
|
||||
const node = workflow.value.nodes[nodeIndex];
|
||||
workflow.value = {
|
||||
...workflow.value,
|
||||
nodes: [
|
||||
...workflow.value.nodes.slice(0, nodeIndex),
|
||||
{ ...node, ...nodeData },
|
||||
...workflow.value.nodes.slice(nodeIndex + 1),
|
||||
],
|
||||
};
|
||||
Object.assign(workflow.value.nodes[nodeIndex], nodeData);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1023,12 +1015,6 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => {
|
|||
issues: remainingNodeIssues,
|
||||
});
|
||||
} else {
|
||||
if (node.issues === undefined) {
|
||||
updateNodeAtIndex(nodeIndex, {
|
||||
issues: {},
|
||||
});
|
||||
}
|
||||
|
||||
updateNodeAtIndex(nodeIndex, {
|
||||
issues: {
|
||||
...node.issues,
|
||||
|
@ -1053,7 +1039,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => {
|
|||
workflow.value.nodes.push(nodeData);
|
||||
// Init node metadata
|
||||
if (!nodeMetadata.value[nodeData.name]) {
|
||||
nodeMetadata.value = { ...nodeMetadata.value, [nodeData.name]: {} as INodeMetadata };
|
||||
nodeMetadata.value[nodeData.name] = {} as INodeMetadata;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1158,13 +1144,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => {
|
|||
parameters: newParameters as INodeParameters,
|
||||
});
|
||||
|
||||
nodeMetadata.value = {
|
||||
...nodeMetadata.value,
|
||||
[node.name]: {
|
||||
...nodeMetadata.value[node.name],
|
||||
parametersLastUpdatedAt: Date.now(),
|
||||
},
|
||||
} as NodeMetadataMap;
|
||||
nodeMetadata.value[node.name].parametersLastUpdatedAt = Date.now();
|
||||
}
|
||||
|
||||
function setLastNodeParameters(updateInformation: IUpdateInformation): void {
|
||||
|
@ -1484,13 +1464,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => {
|
|||
}
|
||||
|
||||
function setNodePristine(nodeName: string, isPristine: boolean): void {
|
||||
nodeMetadata.value = {
|
||||
...nodeMetadata.value,
|
||||
[nodeName]: {
|
||||
...nodeMetadata.value[nodeName],
|
||||
pristine: isPristine,
|
||||
},
|
||||
};
|
||||
nodeMetadata.value[nodeName].pristine = isPristine;
|
||||
}
|
||||
|
||||
function resetChatMessages(): void {
|
||||
|
|
|
@ -319,12 +319,14 @@ async function initializeRoute() {
|
|||
|
||||
await initializeWorkspaceForExistingWorkflow(workflowId.value);
|
||||
|
||||
nodeHelpers.updateNodesInputIssues();
|
||||
nodeHelpers.updateNodesCredentialsIssues();
|
||||
nodeHelpers.updateNodesParameterIssues();
|
||||
|
||||
await loadCredentials();
|
||||
await initializeDebugMode();
|
||||
|
||||
void nextTick(() => {
|
||||
nodeHelpers.updateNodesInputIssues();
|
||||
nodeHelpers.updateNodesCredentialsIssues();
|
||||
nodeHelpers.updateNodesParameterIssues();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue