radiator-web/src/router/index.ts
garionion d8ac261b13
add AccessPoint Overview page
Signed-off-by: garionion <github@entr0py.de>
2021-04-04 16:34:15 +02:00

53 lines
1.1 KiB
TypeScript

import { createWebHistory, createRouter, RouteRecordRaw } from "vue-router";
import Home from "../views/Home.vue";
const Settings = () => import("../views/Settings.vue");
const Login = () => import("../views/Login.vue");
const Sites = () => import("../views/Sites.vue");
const AccessPoints = () => import("../views/AccessPoints.vue");
import { isLoggedIn } from "../api";
const routes: RouteRecordRaw[] = [
{
path: "/",
name: "Home",
component: Home,
},
{
path: "/settings",
name: "Settings",
component: Settings,
},
{
path: "/sites",
name: "Sites",
component: Sites,
},
{
path: "/login",
name: "Login",
component: Login,
props: (route) => ({ logout: route.query.logout }),
},
{
path: "/aps",
name: "AccessPoints",
component: AccessPoints,
props: (route) => ({ site: Number(route.query["site-id"]).valueOf() }),
},
];
const router = createRouter({
history: createWebHistory(),
routes,
});
router.beforeEach(async (to) => {
if (to.name !== "Login") {
const canAccess = await isLoggedIn();
if (!canAccess) return "/login";
}
return true;
});
export default router;