import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router"; import { useAppStore } from "../store/app"; import HomeView from "../views/HomeView.vue"; const routes: Array = [ { path: "/", name: "home", component: HomeView, }, { path: "/about", name: "about", // route level code-splitting // this generates a separate chunk (about.[hash].js) for this route // which is lazy-loaded when the route is visited. component: () => import(/* webpackChunkName: "about" */ "../views/AboutView.vue"), }, { path: "/start", name: "start", component: () => import(/* webpackChunkName: "start" */ "../views/StartView.vue"), }, { path: "/account", name: "account", component: () => import(/* webpackChunkName: "account" */ "../views/AccountViewView.vue"), }, { path: "/confirm-contact", name: "confirm-contact", component: () => import( /* webpackChunkName: "confirm-contact" */ "../views/ConfirmContactView.vue" ), }, { path: "/scan-contact", name: "scan-contact", component: () => import( /* webpackChunkName: "scan-contact" */ "../views/ContactScanView.vue" ), }, { path: "/discover", name: "discover", component: () => import(/* webpackChunkName: "discover" */ "../views/DiscoverView.vue"), }, { path: "/import-account", name: "import-account", component: () => import( /* webpackChunkName: "import-account" */ "../views/ImportAccountView.vue" ), }, { path: "/new-edit-account", name: "new-edit-account", component: () => import( /* webpackChunkName: "new-edit-account" */ "../views/NewEditAccountView.vue" ), }, { path: "/new-edit-commitment", name: "new-edit-commitment", component: () => import( /* webpackChunkName: "new-edit-commitment" */ "../views/NewEditCommitmentView.vue" ), }, { path: "/new-edit-project", name: "new-edit-project", component: () => import( /* webpackChunkName: "new-edit-project" */ "../views/NewEditProjectView.vue" ), }, { path: "/project", name: "project", component: () => import(/* webpackChunkName: "project" */ "../views/ProjectViewView.vue"), }, { path: "/projects", name: "projects", component: () => import(/* webpackChunkName: "projects" */ "../views/ProjectsView.vue"), }, { path: "/commitments", name: "commitments", component: () => import( /* webpackChunkName: "commitments" */ "../views/CommitmentsView.vue" ), }, ]; /** @type {*} */ const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes, }); router.beforeEach(async (to) => { const publicPages = ["/start", "/account", "/import-account"]; const isPublic = publicPages.includes(to.path); const appStore = useAppStore(); let return_path = "/start"; if (isPublic) { switch (appStore.condition) { case "uninitialized": return_path = ""; break; case "registered": return_path = to.path; break; } } if (return_path == "") { return; } else { return return_path; } }); export default router;