/** * Vue Router * * @library * * https://router.vuejs.org/en/ */ // Lib imports import Vue from 'vue' // import VueAnalytics from 'vue-analytics' import Router from 'vue-router' import Meta from 'vue-meta' // Routes import paths from './paths' function route (options) { let path = options.path; let view = options.view; let name = options.name; let meta = (options.meta) ? options.meta : ''; return { name: name || view, path, meta, component: (resovle) => import( `@User/views/${view}.vue` ).then(resovle) } } Vue.use(Router) // Create a new router const router = new Router({ mode: 'history', routes: paths.map(path => route(path)).concat([ { path: '*', redirect: '/Home' } ]), scrollBehavior (to, from, savedPosition) { if (savedPosition) { return savedPosition } if (to.hash) { return { selector: to.hash } } return { x: 0, y: 0 } } }) Vue.use(Meta) router.beforeEach((to, from, next) => { // const isPublic = to.matched.some(record => record.meta.public); // const onlyWhenLoggedOut = to.matched.some(record => record.meta.onlyWhenLoggedOut); // const roles = (to.meta && to.meta.roles) ? to.meta.roles : null; // if (!isPublic && !loggedIn) { // return next({ // path:'/login', // query: {redirect: to.fullPath} // Store the full path to redirect the user to after login // }); // } // // Do not allow user to visit login page or register page if they are logged in // if (loggedIn && onlyWhenLoggedOut && policy) { // return next('/') // } next(); }); export default router