import { useEffect, useCallback, type ReactNode } from 'react'; import { createPortal } from 'react-dom'; import { useBackdropClose } from '../../lib/useBackdropClose'; interface EmbedModalProps { open: boolean; onClose: () => void; children: ReactNode; } export function EmbedModal({ open, onClose, children }: EmbedModalProps) { const backdrop = useBackdropClose(onClose); const handleKeyDown = useCallback((e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); }, [onClose]); useEffect(() => { if (open) { document.addEventListener('keydown', handleKeyDown); document.body.style.overflow = 'hidden'; return () => { document.removeEventListener('keydown', handleKeyDown); document.body.style.overflow = ''; }; } }, [open, handleKeyDown]); if (!open) return null; return createPortal(