Skip to content

Commit 1abe99d

Browse files
committed
fix(WorkflowMenu): Default collapse menus, and expand on view add
1 parent 60e21d6 commit 1abe99d

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

src/components/core/WorkflowMenu/template.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@
2222
:key="i"
2323
sub-group
2424
no-action
25-
:value="!dataModel.isCollapsed(node.id, 0)"
2625
:class="$style.group"
26+
:value="!dataModel.isCollapsed(node.id, 0)"
27+
@input="dataModel.setCollapsed(node.id, 0, !arguments[0])"
2728
>
2829
<v-list-tile slot="activator">
2930
<v-list-tile-content>

src/core/ModelManager.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,29 @@ export default class ModelManager {
133133

134134
isCollapsed(viewName, viewIndex) {
135135
const key = `${viewName}::${viewIndex}`;
136+
if (!(key in this.collapseState)) {
137+
// default to collapsed state
138+
// deferred setting of the collapsed state
139+
this.setCollapsed(viewName, viewIndex, true);
140+
}
136141
return this.collapseState[key];
137142
}
138143

139144
// --------
140145

141146
toggleCollapse(viewName, viewIndex) {
142147
const key = `${viewName}::${viewIndex}`;
143-
this.collapseState[key] = !this.collapseState[key];
148+
this.collapseState = assignObjKey(
149+
this.collapseState,
150+
key,
151+
!this.collapseState[key]
152+
);
153+
}
154+
155+
// --------
156+
setCollapsed(viewName, viewIndex, state) {
157+
const key = `${viewName}::${viewIndex}`;
158+
this.collapseState = assignObjKey(this.collapseState, key, state);
144159
}
145160

146161
// --------
@@ -153,6 +168,8 @@ export default class ModelManager {
153168
viewList.push({ name, id: this.getNextViewId() });
154169
this.data = assignObjKey(this.data, viewName, viewList);
155170
this.activateView(viewName, index);
171+
// expand menu if not already expanded
172+
this.setCollapsed(viewName, 0, false);
156173
// generate data model for new view (...using a get method with side-effects...)
157174
this.getPropertyList();
158175
this.runHooks();

0 commit comments

Comments
 (0)