import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'; import { useSession } from '@/core/composables/useSession'; const routes: Array = [ { path: '/login', name: 'Login', component: () => import('../views/Login/Login.vue'), }, { path: '/', name: 'Main', component: () => import('../views/Layout/Main.vue'), redirect: { name: 'Dashboard' }, children: [ { path: '/dashboard', name: 'Dashboard', component: () => import('../views/Dashboard/Dashboard.vue'), }, { path: '/customer', name: 'Customer', component: () => import('../views/Customer/Customer.vue'), }, { path: '/:pathMatch(.*)*', name: 'NotFound', component: () => import('../views/Layout/NotFound.vue'), }, ], }, ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes, }); router.beforeEach((to, from, next) => { const session = useSession(); const { isLoggedIn } = session; if (!isLoggedIn && to.name !== 'Login') { next({ path: '/login', query: { redirect: to.fullPath } }); } else { next(); } }); export default router;