import { AlertTriangle, Loader2 } from 'lucide-react'; /** * Reusable Confirmation Modal for actions that need user confirmation * * @param {boolean} isOpen - Controls modal visibility * @param {function} onClose - Close/Cancel handler * @param {function} onConfirm - Confirm action handler * @param {string} title - Modal title * @param {string} description - Optional description text * @param {string} message - Main message/question to display * @param {string} confirmText - Confirm button text (default: 'Confirm') * @param {string} cancelText - Cancel button text (default: 'Cancel') * @param {string} confirmButtonClass - Custom classes for confirm button (default: red/danger style) * @param {React.Component} icon - Icon component (default: AlertTriangle) * @param {string} iconBgClass - Icon background class (default: bg-red-100) * @param {string} iconColorClass - Icon color class (default: text-red-600) * @param {boolean} isLoading - Shows loading state on confirm button * @param {string} loadingText - Text to show when loading (default: 'Loading...') */ const ConfirmationModal = ({ isOpen, onClose, onConfirm, title, description, message, confirmText = 'Confirm', cancelText = 'Cancel', confirmButtonClass = 'bg-red-600 hover:bg-red-700', icon: Icon = AlertTriangle, iconBgClass = 'bg-red-100', iconColorClass = 'text-red-600', isLoading = false, loadingText = 'Loading...' }) => { if (!isOpen) return null; return (
{description}
}{message}
)} {/* Actions */}