import ReactDOM from 'react-dom/client'
import { createPortal } from 'react-dom'
import { useState } from 'react'
import { BrowserRouter, Link, Route, Routes } from 'react-router-dom'
import Swal from 'sweetalert2'
const Home = () => {
const [swalShown, setSwalShown] = useState(false)
const showSwal = () => {
Swal.fire({
didOpen: () => setSwalShown(true),
didClose: () => setSwalShown(false),
})
}
return (
<>
<h1>Home</h1>
<button onClick={showSwal}>Show SweetAlert2 modal</button>
{/* Use createPortal to maintain React context/state inside the Swal modal */}
{swalShown &&
createPortal(
<Link to="/about" onClick={() => Swal.close()}>
Go to About
</Link>,
Swal.getHtmlContainer()!
)}
</>
)
}
ReactDOM.createRoot(document.querySelector('.app-root')!).render(
<BrowserRouter>
<Link to="/">Home</Link> {' | '}
<Link to="/about">About</Link>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<div>About Page</div>} />
</Routes>
</BrowserRouter>
)