MazDialogConfirm
MazDialogConfirm is a standalone component that dialogs with the user to show important information and propose confirmation. You should wait for this response with await.
INFO
This component uses MazDialog, so it inherits all its props
TIP
This component uses <Teleport to="body">
with MazBackdrop, so you can implement this component anywhere and it inherits all its props
Basic usage
vue
<script setup>
import MazDialogConfirm, { useMazDialogConfirm } from 'maz-ui/components/MazDialogConfirm'
import MazDialog from 'maz-ui/components/MazDialog'
import { ref } from 'vue'
const confirmDialog = ref(false)
const { showDialogAndWaitChoice, data } = useMazDialogConfirm()
data.value = {
title: 'Delete user',
message: 'Are you sure you want to delete this user?',
}
const buttons: DialogCustomButton[] = [
{
text: 'Cancel',
type: 'reject',
color: 'destructive',
outlined: true,
response: 'cancel',
size: 'sm',
},
{
text: 'Delete!',
type: 'resolve',
color: 'success',
response: 'delete',
size: 'lg',
},
]
async function askToUser() {
try {
const acceptResponse = await showDialogAndWaitChoice('one')
toast.success(acceptResponse, {
position: 'top-right'
})
const rejectResponse = await showDialogAndWaitChoice('two')
toast.success(rejectResponse, {
position: 'top-right'
})
confirmDialog.value = true
}
catch (rejectResponse) {
toast.error(rejectResponse, {
position: 'top-right'
})
}
}
</script>
<template>
<MazBtn @click="askToUser">
Ask user
</MazBtn>
<MazDialogConfirm
:data="dataPromiseOne"
identifier="one"
/>
<MazDialogConfirm identifier="two" :buttons="buttons">
<template #title>
Do you really want to delete this user?
</template>
<template #default>
Are you really sure you want to delete this user?
</template>
</MazDialogConfirm>
<MazDialog v-model="confirmDialog">
<template #title>
User deleted
</template>
<template #default>
User has been deleted!
</template>
<template #footer="{ close }">
<MazBtn @click="close">
Ok
</MazBtn>
</template>
</MazDialog>
</template>
Types
ts
interface MazDialogConfirmData {
/**
* Dialog title
*/
title?: string
/**
* Dialog message
*/
message?: string
/**
* Dialog custom buttons
* @default [{ text: 'Confirm', color: 'success', type: 'accept' }, { text: 'Cancel', color: 'destructive', type: 'reject' }]
* @type {MazDialogConfirmButton[]}
*/
buttons?: MazDialogConfirmButton[]
}
// All props of MazBtn
interface MazDialogConfirmButton {
text?: string
block?: boolean
color?: Color
disabled?: boolean
loading?: boolean
outlined?: boolean
rounded?: boolean
size?: Size
text: string
type: 'accept' | 'reject'
response?: unknown
}
type Color = 'primary'
| 'secondary'
| 'info'
| 'success'
| 'warning'
| 'destructive'
| 'accent'
| 'contrast'
| 'transparent'
type Size = 'mini' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'
Events
Event name | Properties | Description |
---|---|---|
close | value void - void | Emitted when modal is close |
open | value void - void | Emitted when modal is open |
Slots
Name | Description | Bindings |
---|---|---|
title | title slot - Place your title | |
default | Default slot - Place your content | accept Function - accept functionreject Function - reject function |
footer-button | Footer slot | accept Function - accept functionreject Function - reject function |
Expose
close
Close the dialog
@description
This is used to close the dialog
isActive
Check if the dialog is active
@description
This is used to check if the dialog is active