/* eslint-disable jsx-a11y/click-events-have-key-events */ import { XIcon } from '@heroicons/react/outline'; import React, { useEffect, useRef, useState } from 'react'; import ReactDOM from 'react-dom'; import { useLockBodyScroll } from '../../../hooks/useLockBodyScroll'; import Transition from '../../Transition'; 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); useEffect(() => { setIsMounted(true); }, []); if (!isMounted) { return null; } return ReactDOM.createPortal( {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
onClose()} onKeyDown={(e) => { if (e.key === 'Escape') { onClose(); } }} >
{/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
e.stopPropagation()} >

{title}

{subText && (

{subText}

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