Created
February 7, 2020 15:51
-
-
Save dumebi/fd0feda00fedd98497a71277a86f574a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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