don't remove active tab after deleting note to preserve tab state, fixes #727

This commit is contained in:
zadam 2019-11-26 20:42:34 +01:00
parent 91487b338a
commit e712990c03
2 changed files with 8 additions and 2 deletions

View File

@ -273,7 +273,9 @@ async function filterTabs(noteId) {
async function noteDeleted(noteId) { async function noteDeleted(noteId) {
for (const tc of tabContexts) { for (const tc of tabContexts) {
if (tc.notePath && tc.notePath.split("/").includes(noteId)) { // not removing active even if it contains deleted note since that one will move to another note (handled by deletion logic)
// and we would lose tab context state (e.g. sidebar visibility)
if (!tc.isActive() && tc.notePath && tc.notePath.split("/").includes(noteId)) {
await tabRow.removeTab(tc.$tab[0]); await tabRow.removeTab(tc.$tab[0]);
} }
} }

View File

@ -246,11 +246,15 @@ class TabContext {
} }
setCurrentNotePathToHash() { setCurrentNotePathToHash() {
if (this.$tab[0] === this.tabRow.activeTabEl) { if (this.isActive()) {
document.location.hash = (this.notePath || "") + "-" + this.tabId; document.location.hash = (this.notePath || "") + "-" + this.tabId;
} }
} }
isActive() {
return this.$tab[0] === this.tabRow.activeTabEl;
}
setupClasses() { setupClasses() {
for (const clazz of Array.from(this.$tab[0].classList)) { // create copy to safely iterate over while removing classes for (const clazz of Array.from(this.$tab[0].classList)) { // create copy to safely iterate over while removing classes
if (clazz !== 'note-tab') { if (clazz !== 'note-tab') {