Skip to content
Snippets Groups Projects
routes.js 2.58 KiB
Newer Older
fibasile's avatar
fibasile committed
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 },
fibasile's avatar
fibasile committed
                component: () => import("pages/UserDashboard")
              },
              {
                path: "edit",
                meta: { requiresAuth: true },
fibasile's avatar
fibasile committed
                component: () => import("pages/UserSettings.vue")
              },
              {
                path: "projects",
                meta: { requiresAuth: true },
fibasile's avatar
fibasile committed
                component: () => import("pages/UserProjects.vue")
              },
              {
                path: "collections",
                meta: { requiresAuth: true },
fibasile's avatar
fibasile committed
                component: () => import("pages/UserCollections.vue")
              },
              {
                path: "collections/new",
                meta: { requiresAuth: true },
fibasile's avatar
fibasile committed
                component: () => import("pages/CollectionUpload.vue")
              },
              {
                path: "bookmarks",
                meta: { requiresAuth: true },
fibasile's avatar
fibasile committed
                component: () => import("pages/UserBookmarks.vue")
              },
              {
                meta: { requiresAuth: true },
fibasile's avatar
fibasile committed
                path: "projects/new",
                component: () => import("pages/ProjectUpload.vue")
              }
            ]
          },
          {
            path: "collections",
            component: () => import("pages/Collections.vue")
fibasile's avatar
fibasile committed
          },
          {
            path: "projects/:project_id",
            component: () => import("pages/ProjectDetail.vue")
fibasile's avatar
fibasile committed
          }
        ]
      },
      {
        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;