import Vue from 'vue' import VueRouter from 'vue-router' import auth_wrapper from './vue/auth/wrapper.vue' import noauth_wrapper from './vue/noauth/wrapper.vue' /* (1) Setup: Vue, VueRouter, Authentication, ClientDriver-s */ require('./setup.js').default.then(() => { /* (2) Set router hooks to load page data before loading content */ gs.get.router.beforeEach((to, from, next) => { // {1} Ignore null name // if( to.name == null ) return next(); // {2} Get appropriate page location // let auth_folder = (gs.get.authed) ? 'auth' : 'noauth'; let page_file = to.name || gs.get.routes[auth_folder][0].name; let fullpath = `${auth_folder}/${page_file}`; // {3} Load page script // if( fullpath === 'noauth/login') return require('./page/noauth/login.js').default.then(next); if( fullpath === 'noauth/register') return require('./page/noauth/register.js').default.then(next); if( fullpath === 'auth/channel') return require('./page/auth/channel.js').default.then(next); // {4} Let VueRouter do the magic // // next(); }); /* (3) Select appropriate wrapper */ const wrapper = (gs.get.authed) ? auth_wrapper : noauth_wrapper; /* (4) Render view */ Vue.use(VueRouter); new Vue({ el: '#vue', router: gs.get.router, render(h){ return h(wrapper); } }); });