Skip to content
Snippets Groups Projects
main.js 1.55 KiB
Newer Older
Jan Kolomazník's avatar
Jan Kolomazník committed
import Vue from 'vue'
import axios from './axios'
import App from './components/core/app'
import UserAuth from './services/user-auth'
import BootstrapVue from 'bootstrap-vue'
import ModalConfirm from './components/core/modal-confirm'
import ModalAlert from './components/core/modal-alert'
import router from './router.js'
import store from './store/index.js'
import Vuelidate from 'vuelidate'
import AppForm from './components/core/app-form'
import VueAnalytics from 'vue-analytics'
import configLoader from './config'
import 'font-awesome/css/font-awesome.css'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'

if (process.env.NODE_ENV == 'production') {
  Vue.use(VueAnalytics, {
    id: 'UA-74932754-3',
    router,
  })
}

Vue.config.productionTip = false

const userAuth = new UserAuth(axios, store)

Vue.use(BootstrapVue)
Vue.use(Vuelidate)

Vue.component('modal-confirm', ModalConfirm)
Vue.component('modal-alert', ModalAlert)
Vue.component('app-form', AppForm)

configLoader.then(
  config => {
    userAuth.renew().then(
      () => {
        //global event bus
        var bus = new Vue()

        //register axios
        Vue.prototype.$http = axios

        new Vue({
          el: '#app',
          router,
          store,
          render: h => h(App),
          template: '<app></app>',
          provide() {
            return {
              EventBus: bus,
              UserAuth: userAuth,
              config,
            }
          },
        })
      },
      () => {
        //TODO
      }
    )
  },
  () => {
    //TODO
  }
)