Skip to content

Instantly share code, notes, and snippets.

@dumebi
Created February 7, 2020 15:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dumebi/fd0feda00fedd98497a71277a86f574a to your computer and use it in GitHub Desktop.
Save dumebi/fd0feda00fedd98497a71277a86f574a to your computer and use it in GitHub Desktop.
import Vue from 'vue'
import Router from 'vue-router'
import UserDashboardLayout from '@/layout/User/DashboardLayout'
import CompanyDashboardLayout from '@/layout/Company/DashboardLayout'
import AdminDashboardLayout from '@/layout/Admin/DashboardLayout'
import AuthLayout from '@/layout/AuthLayout'
import LandingPageLayout from '@/layout/LandingLayout'
Vue.use(Router)
const router = new Router({
mode: 'history',
linkExactActiveClass: 'active',
routes: [
{
path: '/',
redirect: '/',
name: 'LandingPage',
component: LandingPageLayout,
children: [
{
path: '',
name: 'HomePage',
component: () => import(/* webpackChunkName: "demo" */ './views/Home/Home.vue')
},
{
path: 'ico',
name: 'IcoPage',
component: () => import(/* webpackChunkName: "demo" */ './views/Home/Ico.vue')
}
]
},
{
path: '/dashboard',
redirect: 'dashboard',
name: 'UserDashboard',
meta: { requiresUserAuth: true },
component: UserDashboardLayout,
children: [
{
path: '/',
name: 'dashboard',
// 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: "demo" */ './views/User/Dashboard.vue')
},
{
path: 'token/:id',
name: 'token',
component: () => import(/* webpackChunkName: "demo" */ './views/User/Token.vue')
},
{
path: 'assets',
name: 'assets',
component: () => import(/* webpackChunkName: "demo" */ './views/User/AllAssets.vue')
},
{
path: 'my-assets',
name: 'my-assets',
component: () => import(/* webpackChunkName: "demo" */ './views/User/Assets.vue')
},
{
path: 'wallet',
name: 'wallet',
component: () => import(/* webpackChunkName: "demo" */ './views/User/Wallet.vue')
},
{
path: 'settings',
name: 'settings',
component: () => import(/* webpackChunkName: "demo" */ './views/User/Settings.vue')
},
{
path: 'profile',
name: 'profile',
component: () => import(/* webpackChunkName: "demo" */ './views/User/Profile.vue')
},
{
path: 'maps',
name: 'maps',
component: () => import(/* webpackChunkName: "demo" */ './views/Maps.vue')
},
{
path: 'icons',
name: 'icons',
component: () => import(/* webpackChunkName: "demo" */ './views/Icons.vue')
},
{
path: 'tables',
name: 'tables',
component: () => import(/* webpackChunkName: "demo" */ './views/Tables.vue')
}
]
},
{
path: '/business',
redirect: 'business',
name: 'CompanyDashboard',
meta: { requiresCompanyAuth: true },
component: CompanyDashboardLayout,
children: [
{
path: '/',
name: 'company-dashboard',
// 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: "demo" */ './views/Company/Dashboard.vue')
},
{
path: 'token/new',
name: 'company-new-token',
component: () => import(/* webpackChunkName: "demo" */ './views/Company/NewToken.vue')
},
{
path: 'token/:id',
name: 'company-token',
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Token.vue')
},
{
path: 'tokens',
name: 'company-tokens',
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Tokens.vue')
},
{
path: 'walllet',
name: 'company-wallet',
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Wallet.vue')
},
{
path: 'settings',
name: 'company-settings',
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Settings.vue')
},
]
},
{
path: '/business',
component: AuthLayout,
children: [
{
path: 'register',
name: 'company-register',
meta: { requiresNoCompanyAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Auth/Register.vue')
},
{
path: 'login',
name: 'company-login',
meta: { requiresNoCompanyAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Auth/Login.vue')
},
{
path: 'forgot-pass',
name: 'company-forgot-pass',
meta: { requiresNoCompanyAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Auth/Forgot.vue')
},
{
path: 'verify',
name: 'company-verify',
meta: { requiresCompanyAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Auth/Verify.vue')
},
{
path: 'welcome',
name: 'company-welcome',
meta: { requiresCompanyAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Auth/Welcome.vue')
}
]
},
{
path: '/admin',
redirect: 'admin',
name: 'AdminDashboard',
meta: { requiresAdminAuth: true },
component: AdminDashboardLayout,
children: [
{
path: '/',
name: 'admin-dashboard',
// meta: { requiresAdminAuth: true },
// 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: "demo" */ './views/Admin/Dashboard.vue')
},
{
path: 'users',
name: 'admin-users',
// meta: { requiresAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Admin/Users.vue')
},
{
path: 'companies',
name: 'admin-companies',
// meta: { requiresAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Admin/Companies.vue')
},
{
path: 'companies/:id',
name: 'admin-company',
// meta: { requiresAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Company/Wallet.vue')
},
{
path: 'transactions',
name: 'admin-transactions',
// meta: { requiresNoAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Admin/Transactions.vue')
}
]
},
{
path: '/admin',
component: AuthLayout,
children: [
{
path: 'register',
name: 'admin-register',
meta: { requiresNoAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Admin/Auth/Register.vue')
},
{
path: 'login',
name: 'admin-login',
meta: { requiresNoAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Admin/Auth/Login.vue')
},
{
path: 'forgot-pass',
name: 'admin-forgot-pass',
meta: { requiresNoAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Admin/Auth/Forgot.vue')
},
{
path: 'verify',
name: 'admin-verify',
meta: { requiresAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Admin/Auth/Verify.vue')
},
{
path: 'welcome',
name: 'admin-welcome',
meta: { requiresAdminAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Admin/Auth/Welcome.vue')
}
]
},
{
path: '/',
component: AuthLayout,
children: [
{
path: 'login',
name: 'login',
meta: { requiresNoUserAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Auth/Login.vue')
},
{
path: 'verify',
name: 'verify',
meta: { requiresUserAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Auth/Verify.vue')
},
{
path: 'welcome',
name: 'welcome',
meta: { requiresUserAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Auth/Welcome.vue')
},
{
path: 'forgot-pass',
name: 'forgot-pass',
meta: { requiresNoUserAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Auth/Forgot.vue')
},
{
path: 'register',
name: 'register',
meta: { requiresNoUserAuth: true },
component: () => import(/* webpackChunkName: "demo" */ './views/Auth/Register.vue')
}
]
}
]
});
export default router;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment