
<Route path="/modal">
<ModalPage />
</Route>
export default function Sidebar() {
const links = [
{ label: "Modal", path: "/modal" },
];
Parent(button / showModal) => Modal
inset-0 => top:0; left:0; right:0; bottom:0;
<div>
<section>
<div className="absolute inset-0"> Hi </div>
</section>
</div>
function Modal(){
return ReactDOM.createPortal(
<div>I'm a Modal</div>,
// Tells React to place HTML produced by this component somewhere else
document.querySelector('.modal-container')
//Reference to an element in our index.html file
)
}
Inside the ModalPage
const handleClose = () => {
setShowModal(false);
};
return (
<Modal onClose={handleClose}>
)
Inside the Modal
return (
<div
onClick={onClose}
className="absolute inset-0 bg-gray-300 opacity-80"
></div>
)
Inside the ModalPage
const actionBar = (
<div>
<Button onClick={handleClose} primary>
Acceapt
</Button>
</div>
);
const modal = (
<Modal onClose={handleClose} actionBar={actionBar}>
<p>Here is am inportant agreement for you</p>
</Modal>
);
return (
{showModal && modal}
Inside the Modal
<div className="absolute inset-40 p-10 bg-white">
{children}
{actionBar}
</div>

Inside the Modal
export default function Modal({ onClose, children, actionBar }) {
useEffect(() => {
document.body.classList.add("overflow-hidden");
return () => {
document.body.classList.remove("overflow-hidden");
};
}, []);