import React, { useEffect, useCallback } from 'react' import ReactDOM from 'react-dom' import { AlertTriangle } from 'lucide-react' import { useTranslation } from '../../i18n' interface ConfirmDialogProps { isOpen: boolean onClose: () => void onConfirm: () => void title?: string message?: string confirmLabel?: string cancelLabel?: string danger?: boolean } export default function ConfirmDialog({ isOpen, onClose, onConfirm, title, message, confirmLabel, cancelLabel, danger = true, }: ConfirmDialogProps) { const { t } = useTranslation() const handleEsc = useCallback((e: KeyboardEvent) => { if (e.key === 'Escape') onClose() }, [onClose]) useEffect(() => { if (isOpen) { document.addEventListener('keydown', handleEsc) } return () => document.removeEventListener('keydown', handleEsc) }, [isOpen, handleEsc]) if (!isOpen) return null return ReactDOM.createPortal(
e.stopPropagation()} >
{danger && (
)}

{title || t('common.confirm')}

{message}

, document.body ) }