diff --git a/client/components/app/LazyBookshelf.vue b/client/components/app/LazyBookshelf.vue index ab6d54a2..2144b899 100644 --- a/client/components/app/LazyBookshelf.vue +++ b/client/components/app/LazyBookshelf.vue @@ -419,7 +419,7 @@ export default { this.postScrollTimeout = setTimeout(this.postScroll, 500) }, - async resetEntities() { + async resetEntities(scrollPositionToRestore) { if (this.isFetchingEntities) { this.pendingReset = true return @@ -437,6 +437,12 @@ export default { await this.loadPage(0) var lastBookIndex = Math.min(this.totalEntities, this.shelvesPerPage * this.entitiesPerShelf) this.mountEntities(0, lastBookIndex) + + if (scrollPositionToRestore) { + if (window.bookshelf) { + window.bookshelf.scrollTop = scrollPositionToRestore + } + } }, async rebuild() { this.initSizeData() @@ -444,9 +450,8 @@ export default { var lastBookIndex = Math.min(this.totalEntities, this.booksPerFetch) this.destroyEntityComponents() await this.loadPage(0) - var bookshelfEl = document.getElementById('bookshelf') - if (bookshelfEl) { - bookshelfEl.scrollTop = 0 + if (window.bookshelf) { + window.bookshelf.scrollTop = 0 } this.mountEntities(0, lastBookIndex) }, @@ -552,7 +557,7 @@ export default { const newTitle = libraryItem.media.metadata?.title if (curTitle != newTitle) { console.log('Title changed. Re-sorting...') - this.resetEntities() + this.resetEntities(this.currScrollTop) return } }