all repos — stealth-developers @ f6f5a6423298aebc9c56231c1a1ec8c68895f891

frontend/src/router/index.ts (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
import { createRouter, createWebHistory } from "vue-router";
import HomeView from "@/views/HomeView.vue";
import { useAuthStore } from "@/stores/auth";

const router = createRouter({
	history: createWebHistory(import.meta.env.BASE_URL),
	routes: [
		{
			path: "/",
			name: "Home",
			component: HomeView,
		},
		{
			path: "/tickets",
			name: "Tickets",
			component: () => import("../views/TicketsView.vue"),
		},
		{
			path: "/tickets/:id",
			name: "Ticket Details",
			component: () => import("../views/TicketDetailView.vue"),
		},
		{
			path: "/login",
			name: "Login",
			component: () => import("../views/LoginView.vue"),
		},
	],
});

router.beforeEach((to, _from, next) => {
	const isAuthenticated = useAuthStore().isAuthenticated;
	if (to.name !== "Login" && !isAuthenticated) {
		next({ name: "Login" });
	} else {
		next();
	}
});

export default router;