import { defineStore } from 'pinia' import { ref, watch } from 'vue' export const useDialogStore = defineStore('dialog', () => { const onConfirm = ref() const onCancel = ref() const confirmText = ref('') const cancelText = ref('') const open = ref(false) const title = ref('') const content = ref('') const type = ref('normal') const showCancelButton = ref(true) const dismissOnAction = ref(true) const timer = ref() watch(open, (value) => { if (!value) { // check if timer is set if (timer.value) { clearTimeout(timer.value) } timer.value = setTimeout(() => { onConfirm.value = () => { } onCancel.value = () => { } dismissOnAction.value = true showCancelButton.value = true }, 2000) } else { if (timer.value) { clearTimeout(timer.value) } } }) return { showCancelButton, dismissOnAction, onConfirm, onCancel, title, content, type, open, confirmText, cancelText, } })