blob: 6db80b7029ed85b279edf1546fcdb9f49fc1bfa8 [file] [log] [blame]
Derick Montaguefded0d12019-12-11 06:16:40 -06001import Vue from 'vue';
2import VueRouter from 'vue-router';
Yoshie Muranaka816d9472020-09-03 11:19:28 -07003import store from '../store';
4import routes from './routes';
Derick Montaguea2988f42020-01-17 13:46:30 -06005
6Vue.use(VueRouter);
7
Derick Montaguea2988f42020-01-17 13:46:30 -06008const router = new VueRouter({
Derick Montaguea2988f42020-01-17 13:46:30 -06009 base: process.env.BASE_URL,
10 routes,
Yoshie Muranaka71ac2302019-12-26 11:43:36 -080011 linkExactActiveClass: 'nav-link--current'
Derick Montaguea2988f42020-01-17 13:46:30 -060012});
13
Derick Montaguee080a1a2019-12-04 16:30:08 -060014router.beforeEach((to, from, next) => {
15 if (to.matched.some(record => record.meta.requiresAuth)) {
Derick Montaguefded0d12019-12-11 06:16:40 -060016 if (store.getters['authentication/isLoggedIn']) {
Derick Montaguee080a1a2019-12-04 16:30:08 -060017 next();
18 return;
19 }
Derick Montaguefded0d12019-12-11 06:16:40 -060020 next('/login');
Derick Montaguee080a1a2019-12-04 16:30:08 -060021 } else {
22 next();
23 }
24});
25
Derick Montaguea2988f42020-01-17 13:46:30 -060026export default router;