import { useEffect, useRef } from 'react' import { useTranslation } from 'react-i18next' interface Props { open: boolean title: string message?: string onConfirm: () => void onCancel: () => void } export default function ConfirmDialog({ open, title, message, onConfirm, onCancel }: Props) { const { t } = useTranslation() const cancelRef = useRef(null) useEffect(() => { if (open) cancelRef.current?.focus() }, [open]) useEffect(() => { if (!open) return const handler = (e: KeyboardEvent) => { if (e.key === 'Escape') onCancel() } window.addEventListener('keydown', handler) return () => window.removeEventListener('keydown', handler) }, [open, onCancel]) if (!open) return null return (

{title}

{message &&

{message}

}
) }