fix: 2-level collapsible collapse handling

This commit is contained in:
Braden Napier 2019-03-18 21:10:08 -07:00
parent 405e26ad79
commit 574c1c15b9
2 changed files with 9 additions and 9 deletions

View File

@ -71,6 +71,7 @@ tags:
SubItem Two Description!
x-tagGroups:
- name: General
collapsible: true
tags:
- pet
- store
@ -82,7 +83,6 @@ x-tagGroups:
tags:
- SubItem One
- SubItem Two
paths:
/pet:
parameters:

View File

@ -193,6 +193,7 @@ export class MenuStore {
item: IMenuItem | undefined,
updateLocation: boolean = true,
rewriteHistory: boolean = false,
activateFirstChild: boolean = true,
) {
if ((this.activeItem && this.activeItem.id) === (item && item.id)) {
return;
@ -211,7 +212,7 @@ export class MenuStore {
this.history.replace(item.id, rewriteHistory);
}
if (item.type === 'group') {
if (item.type === 'group' && activateFirstChild) {
this.activate(item.items[0], updateLocation, rewriteHistory);
} else {
item.activate();
@ -220,14 +221,13 @@ export class MenuStore {
}
collapse(item: IMenuItem) {
this.activate(item.parent, true, true);
this.activate(item.parent, true, true, false);
const activeItem = this.activeItem;
if (!activeItem) {
if (item.items.length > 0) {
this.scroll.scrollIntoView(this.getElementAt(item.absoluteIdx || -1));
} else if (item.parent && item.parent.type === 'group') {
this.scroll.scrollIntoView(this.getElementAt(item.parent.absoluteIdx || -1));
}
if (item.items.length > 0) {
this.scroll.scrollIntoView(this.getElementAt(item.absoluteIdx || -1));
} else if (!activeItem) {
const parentIdx = (item.parent && item.parent.absoluteIdx) || -1;
this.scroll.scrollIntoView(this.getElementAt(parentIdx));
} else {
this.scroll.scrollIntoView(this.getElementAt(activeItem.absoluteIdx || -1));
}