import React, { MouseEventHandler, ReactNode, useEffect } from "react"; import ClickAwayHandler from "@/components/ClickAwayHandler"; import { Drawer } from "vaul"; type Props = { toggleModal: Function; children: ReactNode; className?: string; dismissible?: boolean; }; export default function Modal({ toggleModal, className, children, dismissible = true, }: Props) { const [drawerIsOpen, setDrawerIsOpen] = React.useState(true); useEffect(() => { if (window.innerWidth >= 640) { document.body.style.overflow = "hidden"; document.body.style.position = "relative"; return () => { document.body.style.overflow = "auto"; document.body.style.position = ""; }; } }, []); if (window.innerWidth < 640) { return ( dismissible && setDrawerIsOpen(false)} onAnimationEnd={(isOpen) => !isOpen && toggleModal()} dismissible={dismissible} >
{children}
); } else { return (
dismissible && toggleModal()} className={`w-full mt-auto sm:m-auto sm:w-11/12 sm:max-w-2xl ${ className || "" }`} >
{dismissible && (
} className="absolute top-4 right-3 btn btn-sm outline-none btn-circle btn-ghost z-10" >
)} {children}
); } }