import * as React from 'react'; import * as ReactDOM from 'react-dom'; import { cn } from '../../lib/utils'; type DialogProps = { open: boolean; onOpenChange: (next: boolean) => void; children: React.ReactNode; }; export function Dialog(props: DialogProps) { return <>{props.children}>; } export function DialogContent({ className, children, open, onOpenChange, }: React.PropsWithChildren<{ className?: string; open?: boolean; onOpenChange?: (v: boolean) => void; }>) { const [mounted, setMounted] = React.useState(false); React.useEffect(() => setMounted(true), []); React.useEffect(() => { function onKey(e: KeyboardEvent) { if (e.key === 'Escape') onOpenChange?.(false); } document.addEventListener('keydown', onKey); return () => document.removeEventListener('keydown', onKey); }, [onOpenChange]); if (!open || !mounted) return null; return ReactDOM.createPortal(