Adding a less complex router

This commit is contained in:
Matthew Aaron Raymer
2023-01-09 15:10:05 +08:00
parent ba85663048
commit 487997b87c
3 changed files with 28 additions and 35 deletions

View File

@@ -7,13 +7,19 @@ const routes: Array<RouteRecordRaw> = [
name: "home",
component: () =>
import(/* webpackChunkName: "start" */ "../views/DiscoverView.vue"),
beforeEnter: (to, from, next) => {
const appStore = useAppStore();
const isAuthenticated = appStore.condition === "registered";
if (isAuthenticated) {
next();
} else {
next({ name: "start" });
}
},
},
{
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"),
},
@@ -75,6 +81,12 @@ const routes: Array<RouteRecordRaw> = [
/* webpackChunkName: "new-edit-commitment" */ "../views/NewEditCommitmentView.vue"
),
},
{
path: "/project",
name: "project",
component: () =>
import(/* webpackChunkName: "project" */ "../views/ProjectViewView.vue"),
},
{
path: "/new-edit-project",
name: "new-edit-project",
@@ -83,12 +95,6 @@ const routes: Array<RouteRecordRaw> = [
/* webpackChunkName: "new-edit-project" */ "../views/NewEditProjectView.vue"
),
},
{
path: "/project",
name: "project",
component: () =>
import(/* webpackChunkName: "project" */ "../views/ProjectViewView.vue"),
},
{
path: "/projects",
name: "projects",
@@ -111,27 +117,4 @@ const router = createRouter({
routes,
});
router.beforeEach(async (to, from, next) => {
const publicPages = ["/start", "/account", "/import-account"];
const isPublic = publicPages.includes(to.path);
const appStore = useAppStore();
console.log(to);
if (to.path === "/" && appStore.condition === "registered") {
next({ path: "/account" });
} else if (isPublic) {
switch (appStore.condition) {
case "registered":
next();
break;
default:
next();
break;
}
} else if (appStore.condition === "uninitialized") {
next({ path: "/start" });
} else {
next();
}
});
export default router;