Lock scrolling when modal is open
This commit is contained in:
parent
b6d50e4157
commit
37140bf9e1
2 changed files with 6 additions and 0 deletions
|
|
@ -4,6 +4,10 @@ html {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.no-scroll {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,13 @@ const Portal = ({ children }) => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
modalRoot.appendChild(modalDiv.current)
|
modalRoot.appendChild(modalDiv.current)
|
||||||
return () => {
|
return () => {
|
||||||
|
document.body.classList.remove('no-scroll')
|
||||||
return modalRoot.removeChild(modalDiv.current)
|
return modalRoot.removeChild(modalDiv.current)
|
||||||
}
|
}
|
||||||
}, [modalDiv, modalRoot])
|
}, [modalDiv, modalRoot])
|
||||||
|
|
||||||
if (modalDiv.current) {
|
if (modalDiv.current) {
|
||||||
|
document.body.classList.add('no-scroll')
|
||||||
return createPortal(children, modalDiv.current)
|
return createPortal(children, modalDiv.current)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue