fix(views): make sure the view is saved properly in localStorage
This commit is contained in:
parent
1460d212ee
commit
637c8f6ba5
@ -8,6 +8,7 @@ const SETTINGS_KEY_PROJECT_VIEW = 'projectView'
|
|||||||
* Save the current project view to local storage
|
* Save the current project view to local storage
|
||||||
*/
|
*/
|
||||||
export function saveProjectView(projectId: IProject['id'], viewId: number) {
|
export function saveProjectView(projectId: IProject['id'], viewId: number) {
|
||||||
|
console.log({projectId, viewId})
|
||||||
if (!projectId || !viewId) {
|
if (!projectId || !viewId) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ import { createRouter, createWebHistory } from 'vue-router'
|
|||||||
import type { RouteLocation } from 'vue-router'
|
import type { RouteLocation } from 'vue-router'
|
||||||
import {saveLastVisited} from '@/helpers/saveLastVisited'
|
import {saveLastVisited} from '@/helpers/saveLastVisited'
|
||||||
|
|
||||||
import {saveProjectView, getProjectViewId} from '@/helpers/projectView'
|
import {getProjectViewId} from '@/helpers/projectView'
|
||||||
import {parseDateOrString} from '@/helpers/time/parseDateOrString'
|
import {parseDateOrString} from '@/helpers/time/parseDateOrString'
|
||||||
import {getNextWeekDate} from '@/helpers/time/getNextWeekDate'
|
import {getNextWeekDate} from '@/helpers/time/getNextWeekDate'
|
||||||
import {LINK_SHARE_HASH_PREFIX} from '@/constants/linkShareHash'
|
import {LINK_SHARE_HASH_PREFIX} from '@/constants/linkShareHash'
|
||||||
@ -366,7 +366,6 @@ const router = createRouter({
|
|||||||
path: '/projects/:projectId/:viewId',
|
path: '/projects/:projectId/:viewId',
|
||||||
name: 'project.view',
|
name: 'project.view',
|
||||||
component: ProjectView,
|
component: ProjectView,
|
||||||
beforeEnter: (to) => saveProjectView(parseInt(to.params.projectId as string), parseInt(to.params.viewId as string)),
|
|
||||||
props: route => ({
|
props: route => ({
|
||||||
projectId: parseInt(route.params.projectId as string),
|
projectId: parseInt(route.params.projectId as string),
|
||||||
viewId: route.params.viewId ? parseInt(route.params.viewId as string): undefined,
|
viewId: route.params.viewId ? parseInt(route.params.viewId as string): undefined,
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import {computed, watch} from 'vue'
|
import {computed, watch} from 'vue'
|
||||||
import {useProjectStore} from '@/stores/projects'
|
import {useProjectStore} from '@/stores/projects'
|
||||||
import {useRoute, useRouter} from 'vue-router'
|
import {useRoute, useRouter} from 'vue-router'
|
||||||
|
import {saveProjectView} from '@/helpers/projectView'
|
||||||
|
|
||||||
import ProjectList from '@/components/project/views/ProjectList.vue'
|
import ProjectList from '@/components/project/views/ProjectList.vue'
|
||||||
import ProjectGantt from '@/components/project/views/ProjectGantt.vue'
|
import ProjectGantt from '@/components/project/views/ProjectGantt.vue'
|
||||||
@ -53,6 +54,13 @@ watch(
|
|||||||
redirectToFirstViewIfNecessary,
|
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()
|
const route = useRoute()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user