63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
import { createApp } from 'vue';
|
|
import { createRouter, createWebHistory } from 'vue-router';
|
|
|
|
import App from './App.vue';
|
|
import TeamsList from './components/teams/TeamsList';
|
|
import TeamMembers from './components/teams/TeamMembers';
|
|
import UsersList from './components/users/UsersList';
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes: [
|
|
{ path: '/', component: TeamsList },
|
|
{
|
|
name: 'teams',
|
|
path: '/teams',
|
|
meta: {
|
|
needsAuth: true
|
|
},
|
|
component: TeamsList,
|
|
children: [
|
|
{
|
|
name: 'team-members',
|
|
path: ':teamId',
|
|
component: TeamMembers,
|
|
props: true
|
|
}
|
|
]
|
|
},
|
|
{ path: '/users', component: UsersList }
|
|
],
|
|
linkActiveClass: 'active',
|
|
scrollBehavior(_, _2, savedPosition) {
|
|
if (savedPosition) {
|
|
return savedPosition;
|
|
}
|
|
return { left: 0, top: 0 };
|
|
}
|
|
});
|
|
|
|
router.beforeEach(function(to, _2, next) {
|
|
if (to.meta.needsAuth) {
|
|
console.log('Needs authentication.');
|
|
}
|
|
// if (to.name === 'team-members') {
|
|
// next();
|
|
// } else {
|
|
// next({ name: 'team-members', params: { teamId: 't2' } });
|
|
// }
|
|
next();
|
|
});
|
|
const app = createApp(App);
|
|
app.use(router);
|
|
app.mount('#app');
|
|
|
|
if (module.hot) {
|
|
0;
|
|
module.hot.accept(); // already had this init code
|
|
|
|
module.hot.addStatusHandler(status => {
|
|
if (status === 'prepare') console.clear();
|
|
});
|
|
}
|