crm/frontend/src/utils/dialogs.jsx
2024-05-29 16:51:44 +05:30

42 lines
1005 B
JavaScript

import { Dialog, ErrorMessage } from 'frappe-ui'
import { reactive, ref } from 'vue'
let dialogs = ref([])
export let Dialogs = {
name: 'Dialogs',
render() {
return dialogs.value.map((dialog) => (
<Dialog
options={dialog}
modelValue={dialog.show}
onUpdate:modelValue={(val) => (dialog.show = val)}
>
{{
'body-content': () => {
return [
dialog.message && (
<p class="text-p-base text-gray-700">{dialog.message}</p>
),
dialog.html && (
<div v-html={dialog.html} />
),
<ErrorMessage class="mt-2" message={dialog.error} />,
]
},
}}
</Dialog>
))
},
}
export function createDialog(dialogOptions) {
let dialog = reactive(dialogOptions)
dialog.key = 'dialog-' + dialogs.value.length
dialog.show = false
setTimeout(() => {
dialog.show = true
}, 0)
dialogs.value.push(dialog)
}