'use client'; import { ReactPortal } from './react-portal'; import { Icon } from './icon'; import { twMerge } from 'tailwind-merge'; import { useEffect } from 'react'; import { ModalProps } from '../types'; export const Modal = (props: ModalProps) => { const { children, portalId, open, setOpen, title = '', showCloseButton = true, className, overlayClassName, headerWrapperClassName, titleClassName, closeButtonClassName, iconName = 'close', iconSize = 16, iconClassName } = props; useEffect(() => { document.body.style.overflow = open ? 'hidden' : 'auto'; return () => { document.body.style.overflow = 'auto'; }; }, [open]); if (!open) return null; return (
{(showCloseButton || title) && (
{title && (

{title}

)} {showCloseButton && ( )}
)} {children}
); };