summaryrefslogblamecommitdiffstats
path: root/webapp/src/main.js
blob: 4a553aa2fee80a0ebc9439d136aae020a137635d (plain) (tree)









































                                                                                                         
import Vue from 'vue'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css'
import VueTouch from 'vue-touch'
import store from './store'
import axios from 'axios'
import router from './router'
import VueI18n from 'vue-i18n'
import '@/assets/styles.css'

Vue.config.productionTip = false

Vue.use(Vuetify, {
  theme: {
    primary: '#0195ff'
  }
})

Vue.use(VueTouch)

Vue.use(VueI18n)

const i18n = new VueI18n({
  locale: store.state.locale
})

axios.interceptors.response.use(null, error => {
  if (error.response.data.status === 'TOKEN_INVALID' || error.response.data.status === 'TOKEN_MISSING') {
    axios.post('/api/logout').then(response => { router.push('/login') })
  }
  return Promise.reject(error)
})
Vue.prototype.$http = axios

new Vue({
  store,
  router,
  i18n,
  computed: { locale: () => store.state.locale },
  watch: { locale: v => { i18n.locale = v } },
  template: '<router-view/>'
}).$mount('#app')