41 lines
827 B
JavaScript
41 lines
827 B
JavaScript
|
|
import { createWebHistory, createRouter } from "vue-router";
|
||
|
|
import Home from "../views/Home.vue";
|
||
|
|
import Inspirations from "../views/Inspirations.vue";
|
||
|
|
import { useApiStore } from "../stores/api";
|
||
|
|
import { usePageStore } from "../stores/page";
|
||
|
|
import { getActivePinia } from "pinia";
|
||
|
|
|
||
|
|
const routes = [
|
||
|
|
{
|
||
|
|
path: "/",
|
||
|
|
component: Home,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
path: "/inspirations",
|
||
|
|
component: Inspirations,
|
||
|
|
},
|
||
|
|
];
|
||
|
|
|
||
|
|
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 };
|