From 637c8f6ba550d18ed360286caedbd905e19f5b2f Mon Sep 17 00:00:00 2001 From: kolaente Date: Sat, 13 Apr 2024 22:15:41 +0200 Subject: [PATCH] fix(views): make sure the view is saved properly in localStorage --- frontend/src/helpers/projectView.ts | 1 + frontend/src/router/index.ts | 3 +-- frontend/src/views/project/ProjectView.vue | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/src/helpers/projectView.ts b/frontend/src/helpers/projectView.ts index 2c8cfb763..2e40f9efe 100644 --- a/frontend/src/helpers/projectView.ts +++ b/frontend/src/helpers/projectView.ts @@ -8,6 +8,7 @@ const SETTINGS_KEY_PROJECT_VIEW = 'projectView' * Save the current project view to local storage */ export function saveProjectView(projectId: IProject['id'], viewId: number) { + console.log({projectId, viewId}) if (!projectId || !viewId) { return } diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 364339611..537a16413 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -2,7 +2,7 @@ import { createRouter, createWebHistory } from 'vue-router' import type { RouteLocation } from 'vue-router' import {saveLastVisited} from '@/helpers/saveLastVisited' -import {saveProjectView, getProjectViewId} from '@/helpers/projectView' +import {getProjectViewId} from '@/helpers/projectView' import {parseDateOrString} from '@/helpers/time/parseDateOrString' import {getNextWeekDate} from '@/helpers/time/getNextWeekDate' import {LINK_SHARE_HASH_PREFIX} from '@/constants/linkShareHash' @@ -366,7 +366,6 @@ const router = createRouter({ path: '/projects/:projectId/:viewId', name: 'project.view', component: ProjectView, - beforeEnter: (to) => saveProjectView(parseInt(to.params.projectId as string), parseInt(to.params.viewId as string)), props: route => ({ projectId: parseInt(route.params.projectId as string), viewId: route.params.viewId ? parseInt(route.params.viewId as string): undefined, diff --git a/frontend/src/views/project/ProjectView.vue b/frontend/src/views/project/ProjectView.vue index 3a18fdbdd..86bdfa449 100644 --- a/frontend/src/views/project/ProjectView.vue +++ b/frontend/src/views/project/ProjectView.vue @@ -2,6 +2,7 @@ import {computed, watch} from 'vue' import {useProjectStore} from '@/stores/projects' import {useRoute, useRouter} from 'vue-router' +import {saveProjectView} from '@/helpers/projectView' import ProjectList from '@/components/project/views/ProjectList.vue' import ProjectGantt from '@/components/project/views/ProjectGantt.vue' @@ -53,6 +54,13 @@ watch( redirectToFirstViewIfNecessary, ) +// using a watcher instead of beforeEnter because beforeEnter is not called when only the viewId changes +watch( + () => [projectId, viewId], + () => saveProjectView(projectId, viewId), + {immediate: true}, +) + const route = useRoute()