From 995f92f7c2146e1574caef53c8e56cc154d99575 Mon Sep 17 00:00:00 2001 From: Azri Kahar <42867097+azrikahar@users.noreply.github.com> Date: Wed, 2 Nov 2022 04:56:00 +0800 Subject: [PATCH] fix back button on item pages after login (#16218) --- app/src/modules/content/routes/item.vue | 12 +++++++++++- app/src/modules/files/routes/item.vue | 16 +++++++++++++++- app/src/modules/users/routes/item.vue | 13 ++++++++++++- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/app/src/modules/content/routes/item.vue b/app/src/modules/content/routes/item.vue index 735fede214..7d8995019e 100644 --- a/app/src/modules/content/routes/item.vue +++ b/app/src/modules/content/routes/item.vue @@ -42,7 +42,7 @@ icon secondary exact - @click="router.back()" + @click="navigateBack" > @@ -365,6 +365,16 @@ const disabledOptions = computed(() => { return []; }); +function navigateBack() { + const backState = router.options.history.state.back; + if (typeof backState !== 'string' || !backState.startsWith('/login')) { + router.back(); + return; + } + + router.push(`/content/${props.collection}`); +} + function useBreadcrumb() { const breadcrumb = computed(() => [ { diff --git a/app/src/modules/files/routes/item.vue b/app/src/modules/files/routes/item.vue index ed88307685..b37e32ce30 100644 --- a/app/src/modules/files/routes/item.vue +++ b/app/src/modules/files/routes/item.vue @@ -2,7 +2,7 @@ @@ -288,6 +288,20 @@ const fieldsFiltered = computed(() => { return fields.value.filter((field: Field) => fieldsDenyList.includes(field.field) === false); }); +function navigateBack() { + const backState = router.options.history.state.back; + if (typeof backState !== 'string' || !backState.startsWith('/login')) { + router.back(); + return; + } + + if (item?.value?.folder) { + router.push(`/files/folders/${item.value.folder}`); + } else { + router.push('/files'); + } +} + function useBreadcrumb() { const breadcrumb = computed(() => { if (!item?.value?.folder) { diff --git a/app/src/modules/users/routes/item.vue b/app/src/modules/users/routes/item.vue index 806c4b9c8e..1616c8ef91 100644 --- a/app/src/modules/users/routes/item.vue +++ b/app/src/modules/users/routes/item.vue @@ -1,7 +1,7 @@