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 @@