"use client"; import { ReactNode, useEffect } from "react"; import { createPortal } from "react-dom"; import { Button } from "@/components/ui/button"; type ModalProps = { open: boolean; title: string; onClose: () => void; children: ReactNode; }; export function Modal({ open, title, onClose, children }: ModalProps) { useEffect(() => { if (!open) { return; } const handleEscape = (event: KeyboardEvent) => { if (event.key === "Escape") { onClose(); } }; window.addEventListener("keydown", handleEscape); return () => window.removeEventListener("keydown", handleEscape); }, [open, onClose]); if (!open) { return null; } if (typeof document === "undefined") { return null; } return createPortal(