import React from 'react'; import { createPortal } from 'react-dom'; import { AlertTriangle, CheckCircle, X } from 'lucide-react'; interface ConfirmModalProps { isOpen: boolean; title: string; message: string; confirmText?: string; cancelText?: string; onConfirm: () => void; onCancel: () => void; isDangerous?: boolean; // Makes confirm button red showCancel?: boolean; variant?: 'warning' | 'success'; // Controls icon and styling } export const ConfirmModal: React.FC = ({ isOpen, title, message, confirmText = "Delete", cancelText = "Cancel", onConfirm, onCancel, isDangerous = true, showCancel = true, variant = 'warning' }) => { if (!isOpen) return null; // Icon and styling based on variant const isSuccess = variant === 'success'; const IconComponent = isSuccess ? CheckCircle : AlertTriangle; const iconClasses = isSuccess ? "w-12 h-12 rounded-full bg-emerald-100 dark:bg-emerald-900/30 flex items-center justify-center text-emerald-600 dark:text-emerald-300 border-2 border-emerald-200 dark:border-emerald-900/30" : "w-12 h-12 rounded-full bg-rose-100 dark:bg-rose-900/30 flex items-center justify-center text-rose-600 dark:text-rose-300 border-2 border-rose-200 dark:border-rose-900/30"; return createPortal(
{/* Backdrop */}
{/* Modal */}

{title}

{message}

{/* Green for Cancel/No */} {showCancel && ( )} {/* Red for Confirm/Action */}
, document.body ); };