Files
OliveTin/frontend/main.js
2025-10-26 01:10:43 +01:00

55 lines
1.3 KiB
JavaScript

'use strict'
import 'femtocrank/style.css'
import 'femtocrank/dark.css'
import './style.css'
import 'iconify-icon'
import { createClient } from '@connectrpc/connect'
import { createConnectTransport } from '@connectrpc/connect-web'
import { OliveTinApiService } from './resources/scripts/gen/olivetin/api/v1/olivetin_pb'
import { createApp } from 'vue'
import router from './resources/vue/router.js'
import App from './resources/vue/App.vue'
import {
initMarshaller
} from './js/marshaller.js'
import { checkWebsocketConnection } from './js/websocket.js'
function initClient () {
const transport = createConnectTransport({
baseUrl: window.location.protocol + '//' + window.location.host + '/api/'
})
window.client = createClient(OliveTinApiService, transport)
}
function setupVue () {
const app = createApp(App)
app.use(router)
app.mount('#app')
}
function main () {
initClient()
// Expose websocket connection function globally so App.vue can call it after successful init
window.checkWebsocketConnection = checkWebsocketConnection
setupVue()
initMarshaller()
// window.addEventListener('EventConfigChanged', fetchGetDashboardComponents)
// window.addEventListener('EventEntityChanged', fetchGetDashboardComponents)
}
main() // call self