From 0c654d9346700c3f9ce8496eac34e87948181877 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Thu, 22 Aug 2019 20:01:48 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9A=20=D0=BF=D1=80=D0=B5=D0=B4=D1=8B=D0=B4?= =?UTF-8?q?=D1=83=D1=89=D0=B5=D0=BC=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reader/HistoryPage/HistoryPage.vue | 2 +- client/components/Reader/Reader.vue | 14 +++++------ client/components/Reader/share/bookManager.js | 25 +++++++++++++------ 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/client/components/Reader/HistoryPage/HistoryPage.vue b/client/components/Reader/HistoryPage/HistoryPage.vue index a3432872..f8f533d3 100644 --- a/client/components/Reader/HistoryPage/HistoryPage.vue +++ b/client/components/Reader/HistoryPage/HistoryPage.vue @@ -4,7 +4,7 @@ = 0; i--) { const key = await bmMetaStore.key(i); const keySplit = key.split('-'); @@ -67,7 +67,7 @@ class BookManager { let key = null; len = await bmRecentStore.length(); - for (let i = 0; i < len; i++) { + for (let i = len - 1; i >= 0; i--) { key = await bmRecentStore.key(i); if (key) { let r = await bmRecentStore.getItem(key); @@ -339,6 +339,7 @@ class BookManager { await bmRecentStore.setItem('recent-last', this.recentLast); this.recentChanged = true; + this.emit('recent-changed'); return result; } @@ -355,10 +356,11 @@ class BookManager { this.recent[value.key].deleted = 1; await bmRecentStore.setItem(value.key, this.recent[value.key]); - this.recentLast = null; - await bmRecentStore.setItem('recent-last', this.recentLast); - - this.recentChanged = true; + if (this.recentLast.key == value.key) { + this.recentLast = null; + await bmRecentStore.setItem('recent-last', this.recentLast); + } + this.emit('recent-changed'); } async cleanRecentBooks() { @@ -374,6 +376,7 @@ class BookManager { this.sortedRecentCached = null; + this.emit('recent-changed'); return isDel; } @@ -394,6 +397,7 @@ class BookManager { this.recentLast = result; bmRecentStore.setItem('recent-last', this.recentLast);//no await + this.emit('recent-changed'); return result; } @@ -423,8 +427,13 @@ class BookManager { } emit(eventName, value) { - for (const listener of this.eventListeners) - listener(eventName, value); + if (this.eventListeners) { + (async() => { + await utils.sleep(1); + for (const listener of this.eventListeners) + listener(eventName, value); + })(); + } } }