import { createRouter, createWebHistory } from "vue-router"; import { useApiStore } from "@/stores/api"; import HomeView from "@/views/HomeView.vue"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: "/", name: "Home", component: HomeView, }, { path: "/guilds/:guildId", name: "Guild", component: () => import("../views/GuildView.vue"), meta: { requiresAuth: true, }, }, { path: "/guilds/:guildId/tickets", name: "Tickets", component: () => import("../views/TicketsView.vue"), meta: { requiresAuth: true, }, }, { path: "/guilds/:guildId/tickets/:ticketId", name: "Ticket", component: () => import("../views/TicketDetailView.vue"), meta: { requiresAuth: true, }, }, { path: "/login", name: "Login", component: () => import("../views/AboutView.vue"), }, { path: "/tos", name: "Terms of Service", component: () => import("../views/AboutView.vue"), }, { path: "/privacy", name: "Privacy", component: () => import("../views/AboutView.vue"), }, ], }); router.beforeEach(async (to) => { const api = useApiStore(); await api.waitForAuth(); const isAuthenticated = api.isAuthenticated; if (to.meta.requiresAuth && !isAuthenticated) return { name: "Login" }; }); export default router;