diff --git a/src/components/sidebarRight/index.ts b/src/components/sidebarRight/index.ts index 1cc0bb52..592ff03c 100644 --- a/src/components/sidebarRight/index.ts +++ b/src/components/sidebarRight/index.ts @@ -49,7 +49,17 @@ export class AppSidebarRight extends SidebarSlider { public replaceSharedMediaTab(tab?: AppSharedMediaTab) { const previousTab = this.sharedMediaTab; if(previousTab) { + const idx = this.historyTabIds.indexOf(previousTab); + + if(this._selectTab.getFrom() === previousTab.container) { + this._selectTab.setFrom(tab.container); + } + if(tab) { + if(idx !== -1) { + this.historyTabIds[idx] = tab; + } + const wasActive = previousTab.container.classList.contains('active'); if(wasActive) { tab.container.classList.add('active'); @@ -57,6 +67,10 @@ export class AppSidebarRight extends SidebarSlider { previousTab.container.replaceWith(tab.container); } else { + if(idx !== -1) { + this.historyTabIds.splice(idx, 1); + } + previousTab.container.remove(); } } else { diff --git a/src/components/transition.ts b/src/components/transition.ts index ad858ae8..32b49a15 100644 --- a/src/components/transition.ts +++ b/src/components/transition.ts @@ -296,6 +296,8 @@ const Transition = ( // selectTab.prevId = -1; selectTab.prevId = () => from ? whichChild(from) : -1; + selectTab.getFrom = () => from; + selectTab.setFrom = (_from: HTMLElement) => from = _from; return selectTab; };