import { useEffect, type ReactNode } from 'react'; import { createPortal } from 'react-dom'; export function MindSpaceModal({ open, onClose, title, eyebrow, children, className, disableClose = false, }: { open: boolean; onClose: () => void; title: string; eyebrow?: string; children: ReactNode; className?: string; disableClose?: boolean; }) { useEffect(() => { if (!open) return undefined; const onKeyDown = (event: KeyboardEvent) => { if (event.key === 'Escape' && !disableClose) onClose(); }; const previousOverflow = document.body.style.overflow; document.body.style.overflow = 'hidden'; window.addEventListener('keydown', onKeyDown); return () => { document.body.style.overflow = previousOverflow; window.removeEventListener('keydown', onKeyDown); }; }, [open, onClose, disableClose]); if (!open) return null; return createPortal(
{eyebrow}
: null}