fix(ui): open WS only once
[e-mobility-charging-stations-simulator.git] / ui / web / src / main.ts
1 import { createApp } from 'vue'
2 import type { ConfigurationData } from './types'
3 import router from '@/router'
4 import { UIClient } from '@/composables'
5 import App from '@/App.vue'
6
7 const initializeApp = async (config: ConfigurationData) => {
8 const app = createApp(App)
9 app.config.errorHandler = (error, instance, info) => {
10 console.error('Error:', error)
11 console.info('Vue instance:', instance)
12 console.info('Error info:', info)
13 // TODO: Add code for UI notifications or other error handling logic
14 }
15 app.config.globalProperties.$UIClient = UIClient.getInstance(config)
16 app.use(router).mount('#app')
17 }
18
19 fetch('/config.json')
20 .then(response => response.json())
21 .catch(error => {
22 console.error('Error at fetching app configuration:', error)
23 throw error
24 })
25 .then(config => {
26 initializeApp(config)
27 })
28 .catch(error => {
29 console.error('Error at initializing app:', error)
30 throw error
31 })