import { createRouter, createWebHistory } from 'vue-router' import HomeView from '@/views/HomeView.vue' import MapView from '@/views/MapView.vue' import MianView from '@/views/MianView.vue' import keycloak from '@/plugins/keycloak' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: "/", name: "home", component: MianView, children: [ { path: '/', name: 'home', component: HomeView, meta: { Auth: true, }, }, { path: '/map', name: 'map', component: MapView, meta: { Auth: true, }, }, { path: '/about', name: 'about', // route level code-splitting // this generates a separate chunk (about.[hash].js) for this route // which is lazy-loaded when the route is visited. component: () => import('@/views/AboutView.vue'), meta: { Auth: true, }, }, { path: '/history', name: 'history', component: () => import('@/views/HistoryView.vue'), meta: { Auth: true, }, }, // { // path: '/camera', // name: 'camera', // component: () => import('@/views/SampleCamera.vue'), // }, /** * 404 Not Found * ref: https://router.vuejs.org/guide/essentials/dynamic-matching.html#catch-all-404-not-found-route */ { path: '/:pathMatch(.*)*', name: 'NotFound', component: () => import('@/views/ErrorNotFoundPage.vue'), meta: { Auth: true, }, }, ] }, ], }) router.beforeEach((to, from, next) => { if (to.meta.Auth) { if (!keycloak.authenticated) { keycloak.login({ redirectUri: `${window.location.protocol}//${window.location.host}${to.path}`, locale: 'th', }) } else { // keycloak.updateToken(60); // const role = keycloak.tokenParsed?.role // if (role.includes(to.meta.Role)) { next() // } else { // next({ path: '' }) // // next(); // } } } else { next() } // next(); }) export default router