import { useEffect, useCallback } from "react"; import styles from "./ConfirmModal.module.css"; interface ConfirmModalProps { open: boolean; title: string; message: string; confirmLabel?: string; cancelLabel?: string; onConfirm: () => void; onCancel: () => void; variant?: "warning" | "danger"; } export default function ConfirmModal({ open, title, message, confirmLabel = "Confirm", cancelLabel = "Cancel", onConfirm, onCancel, variant = "warning", }: ConfirmModalProps) { const handleKeyDown = useCallback( (e: KeyboardEvent) => { if (e.key === "Escape") onCancel(); }, [onCancel], ); useEffect(() => { if (!open) return; document.addEventListener("keydown", handleKeyDown); return () => document.removeEventListener("keydown", handleKeyDown); }, [open, handleKeyDown]); if (!open) return null; return (
e.stopPropagation()}>

{title}

{message}

); }