39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
import './index.css'
|
|
import { createApp, watch } from 'vue'
|
|
import router from './router'
|
|
import App from './App.vue'
|
|
import { createPinia } from 'pinia'
|
|
import dayjs from '@/utils/dayjs'
|
|
import { createDialog } from '@/utils/dialogs'
|
|
import translationPlugin from './translation'
|
|
import { usersStore } from './stores/user'
|
|
import { initSocket } from './socket'
|
|
import { FrappeUI, setConfig, frappeRequest, pageMetaPlugin } from 'frappe-ui'
|
|
import { telemetryPlugin } from 'frappe-ui/frappe'
|
|
|
|
let pinia = createPinia()
|
|
let app = createApp(App)
|
|
setConfig('resourceFetcher', frappeRequest)
|
|
|
|
app.use(FrappeUI)
|
|
app.use(pinia)
|
|
app.use(router)
|
|
app.use(translationPlugin)
|
|
app.use(pageMetaPlugin)
|
|
app.provide('$dayjs', dayjs)
|
|
app.provide('$socket', initSocket())
|
|
app.mount('#app')
|
|
|
|
const { userResource, allUsers } = usersStore()
|
|
app.provide('$user', userResource)
|
|
app.provide('$allUsers', allUsers)
|
|
|
|
watch(userResource, () => {
|
|
if (userResource.data) {
|
|
app.use(telemetryPlugin, { app_name: 'lms' })
|
|
}
|
|
})
|
|
|
|
app.config.globalProperties.$user = userResource
|
|
app.config.globalProperties.$dialog = createDialog
|