#5237 fix for node duplication

This commit is contained in:
Ashish Jain
2024-05-03 12:50:02 +02:00
parent 913b29dbcb
commit 5e53d6cfee
3 changed files with 25 additions and 5 deletions

View File

@@ -74,8 +74,13 @@
<body>
<pre id="diagram" class="mermaid">
stateDiagram-v2
Chimp --> Gorilla
Chimp --> Bonobo
[*] --> First
state First {
[*] --> second
second --> [*]
}
</pre
>

View File

@@ -716,7 +716,12 @@ const dataFetcher = (parent, parsedItem, diagramStates, nodes, edges, altFlag, u
//add parent id to noteData
noteData.parentId = parentId;
nodes.push(groupData, noteData, nodeData);
//insert groupData
insertOrUpdateNode(nodes, groupData);
//insert noteData
insertOrUpdateNode(nodes, noteData);
//insert nodeData
insertOrUpdateNode(nodes, nodeData);
let from = itemId;
let to = noteData.id;
@@ -742,7 +747,7 @@ const dataFetcher = (parent, parsedItem, diagramStates, nodes, edges, altFlag, u
useRough,
});
} else {
nodes.push(nodeData);
insertOrUpdateNode(nodes, nodeData);
}
console.log('Nodes:', nodes);
@@ -753,6 +758,16 @@ const dataFetcher = (parent, parsedItem, diagramStates, nodes, edges, altFlag, u
}
};
function insertOrUpdateNode(nodes, nodeData) {
const existingNodeData = nodes.find((node) => node.id === nodeData.id);
if (existingNodeData) {
//update the existing nodeData
Object.assign(existingNodeData, nodeData);
} else {
nodes.push(nodeData);
}
}
/**
* Create a standard string for the dom ID of an item.
* If a type is given, insert that before the counter, preceded by the type spacer