import type { ReactNode } from 'react'; import { Button } from '@/components/ui/button'; import { ResponsiveDialog } from '@/components/ui/responsive-dialog'; interface ConfirmDialogProps { open: boolean; onOpenChange: (open: boolean) => void; title: string; description?: string; confirmLabel?: string; cancelLabel?: string; destructive?: boolean; loading?: boolean; /** Desabilita o botão de confirmar (ex: falta escolher uma opção obrigatória em `children`). */ confirmDisabled?: boolean; onConfirm: () => void; /** Conteúdo extra entre a descrição e os botões (ex: um `Select` obrigatório) — opcional. */ children?: ReactNode; } /** * Confirmação explícita antes de ações sensíveis (mudar status de tenant, * excluir plano, disparar geração de faturas etc) — Etapa 15. `children` * é opcional (Etapa 17: usado para pedir a forma de pagamento antes de * marcar parcelas selecionadas como pagas em lote). */ export function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel = 'Confirmar', cancelLabel = 'Cancelar', destructive = false, loading = false, confirmDisabled = false, onConfirm, children, }: ConfirmDialogProps) { return ( } > {children ??
} ); }