ff-admin/src/router/index.ts

59 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-08-23 12:42:32 +00:00
import { createRouter, createWebHistory, createWebHashHistory } from "vue-router";
import Login from "../views/Login.vue";
import { isAuthenticated } from "./authGuards";
import { loadAccountData } from "./accountGuard";
2024-08-25 11:37:23 +00:00
import { isSetup } from "./setupGuard";
2024-08-22 09:48:04 +00:00
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: "/",
2024-08-23 12:42:32 +00:00
redirect: { name: "admin" },
},
{
path: "/login",
name: "login",
component: Login,
},
2024-08-25 11:37:23 +00:00
{
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 }),
},
],
},
2024-08-23 12:42:32 +00:00
{
path: "/admin",
name: "admin",
component: () => import("../views/admin/View.vue"),
beforeEnter: [isAuthenticated],
},
{
path: "/nopermissions",
name: "nopermissions",
component: () => import("../views/NoPermission.vue"),
},
2024-08-23 12:42:32 +00:00
{
path: "/:pathMatch(.*)*",
name: "404",
component: () => import("../views/notFound.vue"),
2024-08-22 09:48:04 +00:00
},
],
});
export default router;