"use client"; import { ReactNode, useEffect, useState } from "react"; import { createPortal } from "react-dom"; import { X } from "lucide-react"; import { cn } from "@/lib/utils"; interface ModalProps { isOpen: boolean; onClose: () => void; title: string; children: ReactNode; className?: string; } export function Modal({ isOpen, onClose, title, children, className }: ModalProps) { const [isMounted, setIsMounted] = useState(false); useEffect(() => { setIsMounted(true); if (isOpen) { document.body.style.overflow = "hidden"; } else { document.body.style.overflow = "unset"; } return () => { document.body.style.overflow = "unset"; }; }, [isOpen]); if (!isMounted || !isOpen) return null; return createPortal(