2019-08-23 15:20:22 +02:00
|
|
|
/*
|
2024-06-06 16:57:08 +02:00
|
|
|
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
2019-08-23 15:20:22 +02:00
|
|
|
*
|
|
|
|
* This is free software, licensed under the GNU General Public License v3.
|
|
|
|
* See /LICENSE for more information.
|
|
|
|
*/
|
|
|
|
|
2024-06-06 16:57:08 +02:00
|
|
|
import PropTypes from "prop-types";
|
2019-08-27 16:09:18 +02:00
|
|
|
import ReactDOM from "react-dom";
|
2019-08-23 15:20:22 +02:00
|
|
|
|
2024-06-06 16:57:08 +02:00
|
|
|
Portal.propTypes = {
|
|
|
|
containerId: PropTypes.string.isRequired,
|
|
|
|
children: PropTypes.node.isRequired,
|
|
|
|
};
|
|
|
|
|
|
|
|
function Portal({ containerId, children }) {
|
2019-08-23 15:20:22 +02:00
|
|
|
const container = document.getElementById(containerId);
|
2019-08-27 16:09:18 +02:00
|
|
|
if (container) return ReactDOM.createPortal(children, container);
|
2019-08-23 15:20:22 +02:00
|
|
|
return null;
|
|
|
|
}
|
2024-06-06 16:57:08 +02:00
|
|
|
|
|
|
|
export default Portal;
|