1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import Vue from 'vue'
- import './plugins/vuetify'
- import App from './App.vue'
- import router from './router'
- import store from './store'
- import VueNativeSock from 'vue-native-websocket'
- Vue.config.productionTip = false
- // Connect the WebSocket client to the store
- Vue.use(VueNativeSock, 'ws://example.com', {
- store,
- connectManually: true,
- reconnection: true,
- reconnectionAttempts: 2,
- reconnectionDelay: 1000
- })
- store.$socket = Vue.prototype.$socket
- // A function loaded before each route change
- router.beforeEach((to, from, next) => {
- // Redirect from config pages if already configured
- if (to.path === '/gdpr' && store.getters.isGdprValidated)
- return next('/hostConfig')
- if (to.path === '/hostConfig' && store.getters.isHostConfigured)
- return next('/experiments')
- // Redirect to configuration pages
- // Check GDPR before doing anything and redirect if necessary
- if (!store.getters.isGdprValidated) {
- if (to.path !== '/gdpr') return next('/gdpr')
- return next()
- }
- // Identify the user
- store.dispatch('setAppUniqueId')
- // Redirect if the host is not configured
- if (!store.getters.isHostConfigured) {
- if (to.path !== '/hostConfig')
- return next('/hostConfig')
- return next()
- }
- next()
- })
- new Vue({
- router,
- store,
- render: h => h(App)
- }).$mount('#app')
|