import { useEffect, useRef } from "react"; import type { ConfirmOptions } from "../hooks/useConfirm"; import "./ConfirmDialog.css"; export interface ConfirmDialogProps { isOpen: boolean; options: ConfirmOptions | null; onConfirm: () => void; onCancel: () => void; } export function ConfirmDialog({ isOpen, options, onConfirm, onCancel }: ConfirmDialogProps) { const cancelButtonRef = useRef(null); useEffect(() => { if (!isOpen) { return; } cancelButtonRef.current?.focus(); const onKeyDown = (event: KeyboardEvent) => { if (event.key === "Escape") { event.preventDefault(); onCancel(); } }; document.addEventListener("keydown", onKeyDown); return () => document.removeEventListener("keydown", onKeyDown); }, [isOpen, onCancel]); if (!isOpen || !options) { return null; } return (
event.stopPropagation()} role="dialog" aria-modal="true" aria-label={options.title} >

{options.title}

{options.message}
); }