import { createRouter, createWebHistory } from 'vue-router' import { pinia } from '@/stores' import { useAuthStore } from '@/stores/auth' import HomeView from '@/views/HomeView.vue' import LoginView from '@/views/LoginView.vue' import RegisterView from '@/views/RegisterView.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', name: 'home', component: HomeView, meta: { requiresAuth: true, }, }, { path: '/login', name: 'login', component: LoginView, meta: { guestOnly: true, }, }, { path: '/register', name: 'register', component: RegisterView, meta: { guestOnly: true, }, }, ], }) router.beforeEach((to) => { const authStore = useAuthStore(pinia) authStore.restore() if (to.meta.requiresAuth && !authStore.isAuthenticated) { return { name: 'login', query: { redirect: to.fullPath, }, } } if (to.meta.guestOnly && authStore.isAuthenticated) { return { name: 'home' } } return true }) export default router