radiator-web/src/router/index.ts
garionion 09369d83c1
add logout
Signed-off-by: garionion <github@entr0py.de>
2021-04-03 23:20:23 +02:00

46 lines
917 B
TypeScript

import { createWebHistory, createRouter } 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");
import { isLoggedIn } from "../api";
const routes = [
{
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 }),
},
];
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;