import { useEffect, type ReactNode } from 'react'; interface ModalProps { open: boolean; onClose?: () => void; labelledBy: string; children: ReactNode; closeOnBackdrop?: boolean; closeOnEscape?: boolean; } export function Modal({ open, onClose, labelledBy, children, closeOnBackdrop = false, closeOnEscape = true, }: ModalProps) { useEffect(() => { if (!open || !closeOnEscape || !onClose) return; const handler = (event: KeyboardEvent) => { if (event.key === 'Escape') { event.preventDefault(); onClose(); } }; window.addEventListener('keydown', handler); return () => window.removeEventListener('keydown', handler); }, [open, closeOnEscape, onClose]); return (