Vitral 0.2
Sobreposição

ConfirmDialog

Uma pergunta modal antes de uma ação, aberta de qualquer lugar com useConfirm, que pode deixar a resposta segura como padrão.

Importação

main.ts
import { ConfirmDialog } from '@vitral/vue';

Severidade

O ícone e o botão de aceitar assumem a cor da severidade.

<script setup lang="ts">import { Button, ConfirmDialog, Toast, useConfirm, useToast } from '@vitral/vue'; const confirm = useConfirm();const toast = useToast(); function remove() {    confirm.require({        header: 'Delete “Quarterly report.xlsx”?',        message: 'The file moves to the recycle bin for 30 days, then it is gone for good.',        severity: 'danger',        acceptLabel: 'Delete',        rejectLabel: 'Cancel',        defaultFocus: 'reject',        accept: () => toast.add({ severity: 'success', summary: 'Deleted', detail: 'Quarterly report.xlsx', life: 3000 }),        reject: () => toast.add({ severity: 'secondary', summary: 'Kept', detail: 'Nothing was deleted.', life: 3000 })    });} function publish() {    confirm.require({        header: 'Publish changes?',        message: 'Everyone with access will see the new version.',        severity: 'info',        acceptLabel: 'Publish',        rejectLabel: 'Not now',        accept: () => toast.add({ severity: 'info', summary: 'Published', life: 3000 })    });}</script> <template>    <ConfirmDialog />    <Toast />    <Button label="Delete file" icon="trash" severity="danger" @click="remove" />    <Button label="Publish" icon="upload" @click="publish" /></template>

Sem cabeçalho

Os rótulos vêm do locale, e o diálogo se chama “Confirmation”.

<script setup lang="ts">import { Button, ConfirmDialog, Toast, useConfirm, useToast } from '@vitral/vue'; const confirm = useConfirm();const toast = useToast(); // A group of its own, so this dialog and its toasts answer only these calls// when another <ConfirmDialog> or <Toast> is on the page.function plain() {    confirm.require({ group: 'leave', message: 'Leave without saving?', accept: () => toast.add({ group: 'leave', summary: 'Left the page', life: 2000 }) });}</script> <template>    <ConfirmDialog group="leave" />    <Toast group="leave" />    <Button label="Leave page" severity="secondary" @click="plain" /></template>

API

Lido de packages/vue/src/components/ConfirmDialog/types.ts, então diz o que o componente aceita de fato.

Props

NomeTipoDescrição
groupstringResponde só às chamadas de `useConfirm().require()` enviadas com o mesmo `group`.

Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.

Slots

NomeProps do slotDescrição
message(props: { message: ConfirmOptions })Substitui o texto da mensagem; ele continua descrevendo o diálogo.
icon(props: { message: ConfirmOptions })—