import { createRouter, createWebHistory } from 'vue-router' import { useUserStore } from '@/stores/user' import { useServicesStore } from '@/stores/services' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', name: 'index', component: () => import('../views/index.vue'), }, { path: '/posts/:slug', name: 'postDetail', component: () => import('../views/posts.vue'), }, ], }) router.beforeEach(async (to, from, next) => { const userStore = useUserStore() const servicesStore = useServicesStore() // Initialize user state if not already initialized if (!userStore.user) { await userStore.fetchUser() } if (to.matched.some((record) => record.meta.requiresAuth) && !userStore.isAuthenticated) { window.open( servicesStore.getSerivceUrl( 'DysonNetwork.Pass', 'login?redirect=' + encodeURIComponent(window.location.href), )!, '_blank', ) next('/') } else { next() } }) export default router