Files
LogisicsApp_Client/Components/UI/ConfirmDialog.tsx

43 lines
891 B
TypeScript

import { Button } from "./Button";
import { Modal } from "./ModalProps";
interface ConfirmDialogProps {
open: boolean;
title: string;
description: string;
confirmLabel?: string;
onConfirm: () => void;
onCancel: () => void;
loading?: boolean;
}
export function ConfirmDialog({
open,
title,
description,
confirmLabel = "Delete",
onConfirm,
onCancel,
loading = false,
}: ConfirmDialogProps) {
return (
<Modal
open={open}
title={title}
onClose={onCancel}
size="sm"
footer={
<>
<Button variant="secondary" onClick={onCancel} disabled={loading}>
Cancel
</Button>
<Button variant="danger" onClick={onConfirm} loading={loading}>
{confirmLabel}
</Button>
</>
}
>
<p className="text-sm text-slate-600">{description}</p>
</Modal>
);
}