import { ref } from 'vue' interface MessageResult { status: boolean error?: string } const isMessageModalOpen = ref(false) const isNeedContact = ref(false) const option = ref(null) let resolvePromise: ((value: MessageResult) => void) | null = null export function useMessageModal() { const openMessageModal = (opt: any): Promise => { isMessageModalOpen.value = true isNeedContact.value = !opt || false option.value = opt return new Promise((resolve) => { resolvePromise = resolve }) } const closeMessageModal = (result: MessageResult) => { isMessageModalOpen.value = false if (resolvePromise) { resolvePromise(result) resolvePromise = null } } return { isMessageModalOpen, isNeedContact, option, openMessageModal, closeMessageModal, } }