designtopack/src/router/router.js
2024-09-17 17:31:03 +02:00

55 lines
1.1 KiB
JavaScript

import { createWebHistory, createRouter } from "vue-router";
import Home from "../views/Home.vue";
import Notifications from "../views/Notifications.vue";
import Reunions from "../views/Reunions.vue";
import Inspirations from "../views/Inspirations.vue";
import Project from "../views/Project.vue";
import { useApiStore } from "../stores/api";
import { usePageStore } from "../stores/page";
import { getActivePinia } from "pinia";
const routes = [
{
path: "/",
component: Home,
},
{
path: "/notifications",
component: Notifications,
},
{
path: "/reunions",
component: Reunions,
},
{
path: "/inspirations",
component: Inspirations,
},
{
path: "/projects/:id",
component: Project,
},
];
const router = createRouter({
history: createWebHistory(),
routes,
});
router.beforeEach(async (to, from, next) => {
const pinia = getActivePinia();
const api = useApiStore(pinia);
const page = usePageStore(pinia);
try {
const res = await api.fetchPageData(to.path);
page.page = res;
next();
} catch (error) {
console.error(error);
next(false);
}
});
export { router };