From 8fc2058db84cd925fcd0b31cc9f5faafea3b4503 Mon Sep 17 00:00:00 2001 From: advplyr Date: Sun, 4 Feb 2024 15:46:26 -0600 Subject: [PATCH] Update:Handle navigating to library item pages when server connection goes down - Added loading indicator to library item page on initial request to server - Redirect to downloaded item page if server item request fails --- components/cards/LazyBookCard.vue | 7 +- layouts/default.vue | 2 +- pages/bookshelf/index.vue | 4 + pages/item/_id/index.vue | 122 ++++++++++++++++++------------ 4 files changed, 85 insertions(+), 50 deletions(-) diff --git a/components/cards/LazyBookCard.vue b/components/cards/LazyBookCard.vue index 003d4d8b..582bef58 100644 --- a/components/cards/LazyBookCard.vue +++ b/components/cards/LazyBookCard.vue @@ -493,7 +493,12 @@ export default { if (router) { if (this.recentEpisode) router.push(`/item/${this.libraryItemId}/${this.recentEpisode.id}`) else if (this.collapsedSeries) router.push(`/bookshelf/series/${this.collapsedSeries.id}`) - else router.push(`/item/${this.libraryItemId}`) + else if (this.localLibraryItem) { + // Pass local library item id to server page to allow falling back to offline page + router.push(`/item/${this.libraryItemId}?localLibraryItemId=${this.localLibraryItemId}`) + } else { + router.push(`/item/${this.libraryItemId}`) + } } } }, diff --git a/layouts/default.vue b/layouts/default.vue index ad290976..fb43779b 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -139,7 +139,7 @@ export default { console.log(`[default] Got server config, attempt authorize ${serverConfig.address}`) - const authRes = await this.postRequest(`${serverConfig.address}/api/authorize`, null, { Authorization: `Bearer ${serverConfig.token}` }, 10000).catch((error) => { + const authRes = await this.postRequest(`${serverConfig.address}/api/authorize`, null, { Authorization: `Bearer ${serverConfig.token}` }, 6000).catch((error) => { console.error('[default] Server auth failed', error) return false }) diff --git a/pages/bookshelf/index.vue b/pages/bookshelf/index.vue index 6d422ba5..3a2036d3 100644 --- a/pages/bookshelf/index.vue +++ b/pages/bookshelf/index.vue @@ -331,6 +331,10 @@ export default { this.initListeners() console.log(`[categories] mounted so fetching categories`) this.fetchCategories() + + if (this.$route.query.error) { + this.$toast.error(this.$route.query.error) + } }, beforeDestroy() { this.removeListeners() diff --git a/pages/item/_id/index.vue b/pages/item/_id/index.vue index f4d7a272..54901d0b 100644 --- a/pages/item/_id/index.vue +++ b/pages/item/_id/index.vue @@ -1,5 +1,8 @@