/* eslint-disable no-unused-expressions */ import React from 'react'; import ReactDOM from 'react-dom'; export interface ModalInterface { onCloseCallback?: () => unknown; } export default function Modal({ onCloseCallback, children }: ModalInterface & React.PropsWithChildren) { const modalRef = React.useRef(null); const el = React.useRef(document.createElement('div')); const closeModal = () => { el.current.remove(); if (typeof onCloseCallback !== 'undefined') onCloseCallback(); }; React.useEffect(() => { const portal = document.getElementById('root'); portal?.appendChild(el.current); return () => { if (typeof onCloseCallback !== 'undefined') onCloseCallback(); return el.current?.remove(); }; }, []); return ReactDOM.createPortal(
{ e.stopPropagation(); }} > {children}
, el.current, ); }