import { createWebHistory, createRouter } from 'vue-router'; import routes from './routes'; import { useApiStore } from '../stores/api'; import { usePageStore } from '../stores/page'; import { useUserStore } from '../stores/user'; const router = createRouter({ history: createWebHistory(), routes, }); router.beforeEach(async (to, from, next) => { const pageStore = usePageStore(); const userStore = useUserStore(); const api = useApiStore(); try { const res = await api.fetchData(to.path); if (!res.user && to.path === '/login' && from.path === '/login') { next(); } else if (res.user && to.path === '/login') { next('/'); } else { pageStore.page = res.page; userStore.user = res.user; next(); } } catch (error) { console.error(error); next(false); } }); export { router };