const routes = [ { path: "/", component: () => import("layouts/Container.vue"), children: [ { path: "", component: () => import("layouts/MyLayout.vue"), children: [ { path: "", component: () => import("pages/Index.vue") }, { path: "login", component: () => import("pages/Login.vue") }, { path: "signup", component: () => import("pages/SignUp.vue") }, { path: "account", component: () => import("layouts/UserLayout.vue"), children: [ { path: "", meta: { requiresAuth: true }, component: () => import("pages/UserDashboard") }, { path: "edit", meta: { requiresAuth: true }, component: () => import("pages/UserSettings.vue") }, { path: "projects", meta: { requiresAuth: true }, component: () => import("pages/UserProjects.vue") }, { path: "collections", meta: { requiresAuth: true }, component: () => import("pages/UserCollections.vue") }, { path: "collections/new", meta: { requiresAuth: true }, component: () => import("pages/CollectionUpload.vue") }, { path: "bookmarks", meta: { requiresAuth: true }, component: () => import("pages/UserBookmarks.vue") }, { meta: { requiresAuth: true }, path: "projects/new", component: () => import("pages/ProjectUpload.vue") } ] }, { path: "collections", component: () => import("pages/Collections.vue") }, { path: "projects/:project_id", component: () => import("pages/ProjectDetail.vue") } ] }, { path: "search", component: () => import("layouts/SearchLayout.vue"), children: [ { path: "", component: () => import("pages/SearchResults.vue") } ] } ] } ]; // Always leave this as last one if (process.env.MODE !== "ssr") { routes.push({ path: "*", component: () => import("pages/Error404.vue") }); } export default routes;