Confirm Dialog
ConfirmDialog uses a Dialog UI that is integrated with the Confirmation API.
Service
CConfirmDialog is controlled via the ConfirmationService that needs to be installed as an application plugin.
ts
import {createApp} from 'vue';
import ConfirmationService from 'primevue/confirmationservice';
const app = createApp(App);
app.use(ConfirmationService);Recommended location of the CConfirmDialog is the main application template so that the component can be accessed in a shared manner.
vue
<template>
<ConfirmDialog/>
</template>The useConfirm composable is used to interact with the component.
vue
<script setup lang="ts">
import {useConfirm} from "primevue/useconfirm";
const confirm = useConfirm();
</script>Basic
CConfirmDialog is displayed by calling the require method of the $confirm instance by passing the options to customize the Dialog.
vue
<template>
<CButton @click="confirmSave()" label="Save"/>
</template>
<script setup lang="ts">
import {useConfirm} from 'primevue/useconfirm';
import {useToast} from 'primevue/usetoast';
const confirm = useConfirm();
const toast = useToast();
const confirmSave = () => {
confirm.require({
message: 'Are you sure you want to proceed?',
header: 'Confirmation',
accept: () => {
toast.add({ severity: 'info', summary: 'Confirmed', detail: 'You have accepted', life: 3000 });
},
reject: () => {
toast.add({ severity: 'error', summary: 'Rejected', detail: 'You have rejected', life: 3000 });
},
});
};
</script>Custom Buttons
Buttons Label
You can customize the labels of the buttons using the acceptLabel and rejectLabel properties.
Buttons Icons
You can add icons to the buttons using the acceptIcon and rejectIcon properties.
Buttons Props
You can pass additional properties to the buttons using the acceptProps and rejectProps properties.
vue
<template>
<CButton @click="confirmDelete()" label="Save"/>
</template>
<script setup lang="ts">
import {useConfirm} from 'primevue/useconfirm';
import {useToast} from 'primevue/usetoast';
import { PrimeIcons } from '@primevue/core/api';
const confirm = useConfirm();
const toast = useToast();
const confirmDelete = () => {
confirm.require({
message: 'Are you sure you want to delete the account?',
header: 'Delete Account',
rejectLabel: 'Back to safety',
rejectIcon: PrimeIcons.CHEVRON_LEFT,
rejectProps: {
severity: 'success',
outlined: true
},
acceptLabel: 'Yes, I am sure',
acceptIcon: PrimeIcons.TRASH,
acceptProps: {
severity: 'error',
},
});
};
</script>