/* eslint-disable jsx-a11y/no-static-element-interactions */ import React, { useState, useEffect, useRef } from 'react'; import ReactDOM from 'react-dom'; import Transition from '../../Transition'; import { useLockBodyScroll } from '../../../hooks/useLockBodyScroll'; import useClickOutside from '../../../hooks/useClickOutside'; interface SlideOverProps { show?: boolean; title: string; subText?: string; onClose: () => void; } const SlideOver: React.FC = ({ show = false, title, subText, onClose, children, }) => { const [isMounted, setIsMounted] = useState(false); const slideoverRef = useRef(null); useLockBodyScroll(show); useClickOutside(slideoverRef, () => { onClose(); }); useEffect(() => { setIsMounted(true); }, []); if (!isMounted) { return null; } return ReactDOM.createPortal(

{title}

{subText && (

{subText}

)}
{children}
, document.body ); }; export default SlideOver;