import React, { ReactNode, useEffect } from "react"; import ClickAwayHandler from "@/components/ClickAwayHandler"; import { Drawer as D } from "vaul"; type Props = { toggleDrawer: Function; children: ReactNode; className?: string; dismissible?: boolean; }; export default function Drawer({ toggleDrawer, 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 && setTimeout(() => toggleDrawer(), 350)} dismissible={dismissible} > dismissible && setDrawerIsOpen(false)} >
{children}
); } else { return ( dismissible && setTimeout(() => toggleDrawer(), 350)} dismissible={dismissible} direction="right" > dismissible && setDrawerIsOpen(false)} className="z-30" >
{children}
); } }