// src/router/index.ts import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'; import routes from './routes'; import { useAuthStore } from '../stores/auth'; const history = import.meta.env.VITE_ROUTER_MODE === 'history' ? createWebHistory(import.meta.env.BASE_URL) : createWebHashHistory(import.meta.env.BASE_URL); const router = createRouter({ history, routes, scrollBehavior: () => ({ left: 0, top: 0 }), }); router.beforeEach(async (to, from, next) => { // Auth guard logic const authStore = useAuthStore(); const isAuthenticated = authStore.isAuthenticated; const publicRoutes = ['/auth/login', '/auth/signup']; // Fixed public routes paths const requiresAuth = !publicRoutes.includes(to.path); if (requiresAuth && !isAuthenticated) { next({ path: '/auth/login', query: { redirect: to.fullPath } }); // Fixed login path with leading slash } else if (!requiresAuth && isAuthenticated) { next({ path: '/' }); } else { next(); } }); export default router;