"use client"; import { ReactNode, useEffect } from "react"; import { createPortal } from "react-dom"; interface ModalProps { isOpen: boolean; onClose: () => void; children: ReactNode; size?: "sm" | "md" | "lg" | "xl"; closeOnOverlayClick?: boolean; } const sizeClasses = { sm: "max-w-md", md: "max-w-2xl", lg: "max-w-3xl", xl: "max-w-4xl", }; export default function Modal({ isOpen, onClose, children, size = "md", closeOnOverlayClick = true, }: ModalProps) { useEffect(() => { if (isOpen) { document.body.style.overflow = "hidden"; } else { document.body.style.overflow = ""; } return () => { document.body.style.overflow = ""; }; }, [isOpen]); if (!isOpen) return null; const modalContent = (