apkt-eis/src/stores/dialog.ts
2024-02-19 09:08:50 +07:00

49 lines
1.2 KiB
TypeScript
Executable File

import { defineStore } from 'pinia'
import { ref, watch } from 'vue'
export const useDialogStore = defineStore('dialog', () => {
const onConfirm = ref<Function>()
const onCancel = ref<Function>()
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<any>()
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,
}
})