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 @@
-
@@ -328,6 +328,7 @@ export default defineComponent({
item,
loading,
isNew,
+ navigateBack,
breadcrumb,
edits,
hasEdits,
@@ -369,6 +370,16 @@ export default defineComponent({
isSavable,
};
+ function navigateBack() {
+ const backState = router.options.history.state.back;
+ if (typeof backState !== 'string' || !backState.startsWith('/login')) {
+ router.back();
+ return;
+ }
+
+ router.push('/users');
+ }
+
function useBreadcrumb() {
const breadcrumb = computed(() => [
{