Initial release

This commit is contained in:
2025-05-30 17:07:06 +03:00
commit cd63464bc2
28 changed files with 988 additions and 0 deletions

44
src/router/index.ts Normal file
View File

@@ -0,0 +1,44 @@
import { createRouter, createWebHistory } from "vue-router";
import ProjectList from "../views/ProjectList.vue";
import Login from "../views/Login.vue";
import { useAuthStore } from "@/stores/auth";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL), // BASE_URL из vite.config.ts
routes: [
{
path: "/login",
name: "Login",
component: Login,
meta: { requiresGuest: true },
},
{
path: "/",
name: "ProjectList",
component: ProjectList,
meta: { requiresAuth: true },
},
// Каждый проект (доска) имеет отдельную страницу, возможно такой вариант будет лучше, особенно для больших отделений
{
path: "/project/:projectId",
name: "ProjectDetails",
component: () => import("../views/Project.vue"),
props: true,
meta: { requiresAuth: true },
},
],
});
router.beforeEach((to, from, next) => {
const authStore = useAuthStore();
if (to.meta.requiresAuth && !authStore.isAuthenticated) {
next({ name: "Login" });
} else if (to.meta.requiresGuest && authStore.isAuthenticated) {
next({ name: "ProjectList" });
} else {
next();
}
});
export default router;