Files
OpenIsle/frontend_nuxt/composables/useConfirm.js
2025-08-19 16:45:47 +08:00

42 lines
762 B
JavaScript

import { ref } from 'vue'
const state = ref({
visible: false,
title: '',
message: '',
resolve: null,
reject: null,
})
export const useConfirm = () => {
const confirm = (title, message) => {
state.value.title = title
state.value.message = message
state.value.visible = true
return new Promise((resolve, reject) => {
state.value.resolve = resolve
state.value.reject = reject
})
}
const onConfirm = () => {
if (state.value.resolve) {
state.value.resolve(true)
}
state.value.visible = false
}
const onCancel = () => {
if (state.value.reject) {
state.value.reject(false)
}
state.value.visible = false
}
return {
confirm,
onConfirm,
onCancel,
state,
}
}