From 28b2710ef011d9c51c6a45650c41fbb5508d529d Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 24 Jun 2025 14:52:40 +0200 Subject: fix(files): log aborted navigation as debug level Signed-off-by: Ferdinand Thiessen --- apps/files/src/router/router.ts | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'apps/files/src/router') diff --git a/apps/files/src/router/router.ts b/apps/files/src/router/router.ts index 00f08c38d31..cf0e43c18ca 100644 --- a/apps/files/src/router/router.ts +++ b/apps/files/src/router/router.ts @@ -74,6 +74,15 @@ const router = new Router({ }, }) +// Handle aborted navigation (NavigationGuards) gracefully +router.onError((error) => { + if (isNavigationFailure(error, NavigationFailureType.aborted)) { + logger.debug('Navigation was aboorted', { error }) + } else { + throw error + } +}) + // If navigating back from a folder to a parent folder, // we need to keep the current dir fileid so it's highlighted // and scrolled into view. -- cgit v1.2.3 From 81ce4280e9ba6015c3a0a4aae019eeba6d7d5ae2 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 1 Jul 2025 09:21:20 +0200 Subject: fix(files): do not redirect router when navigating between views Signed-off-by: Ferdinand Thiessen --- apps/files/src/router/router.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'apps/files/src/router') diff --git a/apps/files/src/router/router.ts b/apps/files/src/router/router.ts index cf0e43c18ca..20c252d6954 100644 --- a/apps/files/src/router/router.ts +++ b/apps/files/src/router/router.ts @@ -11,7 +11,6 @@ import Router, { isNavigationFailure, NavigationFailureType } from 'vue-router' import Vue from 'vue' import { useFilesStore } from '../store/files' -import { useNavigation } from '../composables/useNavigation' import { usePathsStore } from '../store/paths' import logger from '../logger' @@ -86,11 +85,15 @@ router.onError((error) => { // If navigating back from a folder to a parent folder, // we need to keep the current dir fileid so it's highlighted // and scrolled into view. -router.beforeEach((to, from, next) => { +router.beforeResolve((to, from, next) => { if (to.params?.parentIntercept) { delete to.params.parentIntercept - next() - return + return next() + } + + if (to.params.view !== from.params.view) { + // skip if different views + return next() } const fromDir = (from.query?.dir || '/') as string @@ -98,17 +101,16 @@ router.beforeEach((to, from, next) => { // We are going back to a parent directory if (relative(fromDir, toDir) === '..') { - const { currentView } = useNavigation() const { getNode } = useFilesStore() const { getPath } = usePathsStore() - if (!currentView.value?.id) { + if (!from.params.view) { logger.error('No current view id found, cannot navigate to parent directory', { fromDir, toDir }) return next() } // Get the previous parent's file id - const fromSource = getPath(currentView.value?.id, fromDir) + const fromSource = getPath(from.params.view, fromDir) if (!fromSource) { logger.error('No source found for the parent directory', { fromDir, toDir }) return next() @@ -121,7 +123,7 @@ router.beforeEach((to, from, next) => { } logger.debug('Navigating back to parent directory', { fromDir, toDir, fileId }) - next({ + return next({ name: 'filelist', query: to.query, params: { -- cgit v1.2.3