import React, { useEffect, useRef } from 'react'; import { AlertTriangle } from 'lucide-react'; import { useI18n } from '../context/I18nContext'; interface ConfirmDialogProps { isOpen: boolean; title: string; message: string; confirmLabel?: string; cancelLabel?: string; danger?: boolean; onConfirm: () => void; onCancel: () => void; } export const ConfirmDialog: React.FC = ({ isOpen, title, message, confirmLabel, cancelLabel, danger = true, onConfirm, onCancel, }) => { const { t } = useI18n(); const dialogRef = useRef(null); useEffect(() => { if (!isOpen) return; const handleEscape = (e: KeyboardEvent) => { if (e.key === 'Escape') onCancel(); }; document.addEventListener('keydown', handleEscape); return () => document.removeEventListener('keydown', handleEscape); }, [isOpen, onCancel]); if (!isOpen) return null; return (
{ if (e.target === e.currentTarget) onCancel(); }} >
{danger && (
)}

{title}

{message}

); };