Kobana UI
GitHub

ConfirmDialog

Dialog de confirmação com variantes de severidade e suporte a ação async.

Instalação

npx @kobana/ui add confirm-dialog

Dependências instaladas automaticamente: alert-dialog, button (shadcn/ui)

Importação

import { ConfirmDialog } from "@/components/kobana/confirm-dialog"

Props

PropTipoDefaultDescrição
openbooleanControlado externamente
onOpenChange(open: boolean) => voidCallback de abertura/fechamento
variant"danger" | "warning" | "info""danger"Variante visual
titlestringTítulo do dialog
descriptionstringDescrição/mensagem
confirmLabelstring"Confirmar"Label do botão de confirmação
cancelLabelstring"Cancelar"Label do botão de cancelar
onConfirm() => void | Promise<void>Ação de confirmação (suporta async)
isLoadingbooleanfalseEstado de loading externo
childrenReactNodeTrigger element
classNamestringClasses adicionais

Uso

Com trigger

<ConfirmDialog
  variant="danger"
  title="Excluir registro?"
  description="Esta ação não pode ser desfeita."
  onConfirm={async () => await deleteRecord(id)}
>
  <Button variant="destructive">Excluir</Button>
</ConfirmDialog>

Controlado

const [open, setOpen] = useState(false)

<ConfirmDialog
  open={open}
  onOpenChange={setOpen}
  variant="warning"
  title="Arquivar item?"
  description="O item será movido para o arquivo."
  onConfirm={handleArchive}
/>

On this page