diff --git a/cypress/platform/current.html b/cypress/platform/current.html
index 982e12b06..1e2567ea3 100644
--- a/cypress/platform/current.html
+++ b/cypress/platform/current.html
@@ -49,10 +49,14 @@
}
- stateDiagram-v2
-
- [*] --> S1
- state "Some long name" as S1: The description
continues
+ stateDiagram-v2
+ State1: This a a single line description
+ State2: This a a multi line description
+ State2: here comes the multi part
+ a
+ [*] --> State1
+ State1 --> State2
+ State2 --> [*]
stateDiagram
diff --git a/src/diagrams/state/stateDb.js b/src/diagrams/state/stateDb.js
index c56dcd1a3..b5609bd40 100644
--- a/src/diagrams/state/stateDb.js
+++ b/src/diagrams/state/stateDb.js
@@ -132,6 +132,7 @@ export const addState = function(id, type, doc, descr, note) {
}
}
if (descr) {
+ logger.info('Adding state ', id, descr);
if (typeof descr === 'string') addDescription(id, descr.trim());
if (typeof descr === 'object') {
diff --git a/src/diagrams/state/stateRenderer-v2.js b/src/diagrams/state/stateRenderer-v2.js
index 763190f2e..1399b44bd 100644
--- a/src/diagrams/state/stateRenderer-v2.js
+++ b/src/diagrams/state/stateRenderer-v2.js
@@ -52,13 +52,26 @@ const setupNode = (g, parent, node, altFlag) => {
};
}
- // Description
+ // Build of the array of description strings accordinging
if (node.description) {
- if (Array.isArray(node.description)) {
+ if (Array.isArray(nodeDb[node.id].description)) {
+ // There already is an array of strings,add to it
nodeDb[node.id].shape = 'rectWithTitle';
- nodeDb[node.id].description = node.description;
+ nodeDb[node.id].description.push(node.description);
} else {
- nodeDb[node.id].description = node.description;
+ if (nodeDb[node.id].description.length > 0) {
+ // if there is a description already transformit to an array
+ nodeDb[node.id].shape = 'rectWithTitle';
+ if (nodeDb[node.id].description === node.id) {
+ // If the previous description was the is, remove it
+ nodeDb[node.id].description = [node.description];
+ } else {
+ nodeDb[node.id].description = [nodeDb[node.id].description, node.description];
+ }
+ } else {
+ nodeDb[node.id].shape = 'rect';
+ nodeDb[node.id].description = node.description;
+ }
}
}