18 lines
567 B
JavaScript
18 lines
567 B
JavaScript
import { useEffect, useState } from 'react';
|
|
import { createPortal } from 'react-dom';
|
|
export const Portal = ({ children, type })=>{
|
|
const [portalNode, setPortalNode] = useState(null);
|
|
useEffect(()=>{
|
|
const element = document.createElement(type);
|
|
document.body.appendChild(element);
|
|
setPortalNode(element);
|
|
return ()=>{
|
|
document.body.removeChild(element);
|
|
};
|
|
}, [
|
|
type
|
|
]);
|
|
return portalNode ? /*#__PURE__*/ createPortal(children, portalNode) : null;
|
|
};
|
|
|
|
//# sourceMappingURL=index.js.map
|