import React, { FC, useEffect, useRef } from "react"; import styles from "./styles.module.scss"; import { createPortal } from "react-dom"; import { clearAllBodyScrollLocks, disableBodyScroll } from "body-scroll-lock"; import { useCloseOnEscape } from "~/hooks"; interface IProps { onClose?: () => void; } const SidebarWrapper: FC = ({ children, onClose }) => { const ref = useRef(null); useCloseOnEscape(onClose); useEffect(() => { if (!ref.current) return; disableBodyScroll(ref.current, { reserveScrollBarGap: true }); return () => clearAllBodyScrollLocks(); }, []); return createPortal(
{children}
, document.body ); }; export { SidebarWrapper };