crm/frontend/src/main.js
2023-09-29 16:50:48 +05:30

67 lines
1.2 KiB
JavaScript

import './index.css'
import { createApp } from 'vue'
import router from './router'
import App from './App.vue'
import { createPinia } from 'pinia'
import {
FrappeUI,
Button,
Input,
TextInput,
FormControl,
ErrorMessage,
Dialog,
Alert,
Badge,
setConfig,
frappeRequest,
} from 'frappe-ui'
import { createDialog } from './utils/dialogs'
import socket from './socket'
import { getCachedListResource } from 'frappe-ui/src/resources/listResource'
import { getCachedResource } from 'frappe-ui/src/resources/resources'
let globalComponents = {
Button,
TextInput,
Input,
FormControl,
ErrorMessage,
Dialog,
Alert,
Badge,
}
// create a pinia instance
let pinia = createPinia()
let app = createApp(App)
setConfig('resourceFetcher', frappeRequest)
app.use(FrappeUI)
app.use(pinia)
app.use(router)
for (let key in globalComponents) {
app.component(key, globalComponents[key])
}
app.config.globalProperties.$dialog = createDialog
app.mount('#app')
socket.on('refetch_resource', (data) => {
if (data.cache_key) {
let resource =
getCachedResource(data.cache_key) || getCachedListResource(data.cache_key)
if (resource) {
resource.reload()
}
}
})
if (import.meta.env.DEV) {
window.$dialog = createDialog
}