import { useEffect } from 'react'; import { AlertTriangle } from 'lucide-react'; import { Card, CardContent } from './Card'; import { Button } from './Button'; interface ConfirmModalProps { title: string; message: string; confirmText?: string; cancelText?: string; variant?: 'danger' | 'warning' | 'default'; onConfirm: () => void; onCancel: () => void; } export function ConfirmModal({ title, message, confirmText = 'Confirm', cancelText = 'Cancel', variant = 'default', onConfirm, onCancel, }: ConfirmModalProps) { // Close on Escape key useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if (e.key === 'Escape') onCancel(); }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, [onCancel]); const variantStyles = { danger: { icon: 'text-red-400', button: 'bg-red-500 hover:bg-red-600', }, warning: { icon: 'text-yellow-400', button: 'bg-yellow-500 hover:bg-yellow-600', }, default: { icon: 'text-bambu-green', button: 'bg-bambu-green hover:bg-bambu-green-dark', }, }; const styles = variantStyles[variant]; return (
{message}