import { createRouter, createWebHistory, createWebHashHistory } from "vue-router"; import Login from "../views/Login.vue"; import { isAuthenticated } from "./authGuards"; import { loadAccountData } from "./accountGuard"; import { isSetup } from "./setupGuard"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: "/", redirect: { name: "admin" }, }, { path: "/login", name: "login", component: Login, }, { path: "/setup", name: "setup", component: () => import("../views/RouterView.vue"), beforeEnter: [isSetup], children: [ { path: "", name: "setup-create", component: () => import("../views/setup/Setup.vue"), }, { path: "verify", name: "setup-verify", component: () => import("../views/setup/Verify.vue"), props: (route) => ({ mail: route.query.mail, token: route.query.token }), }, ], }, { path: "/admin", name: "admin", component: () => import("../views/admin/View.vue"), beforeEnter: [isAuthenticated], }, { path: "/:pathMatch(.*)*", name: "404", component: () => import("../views/notFound.vue"), }, ], }); export default router;