import component from './index.vue' import { createApp, nextTick, ComponentPublicInstance } from 'vue' export interface ConfirmOptions { title?: string message?: string callback?: (action: string) => any [x: string]: unknown } export type ComfirmInstance = ComponentPublicInstance< { title: string; message: string; callback?: (action: string) => any }, {}, { visible: boolean } > & {} const Confirm = function (options: ConfirmOptions) { const confirmApp = createApp(component, options) const el = document.createElement('div') const confirmInstance = confirmApp.mount(el) as ComfirmInstance document.body.appendChild(el) nextTick(() => { confirmInstance.$data.visible = true }) } export default Confirm