Lock scrolling when modal is open

This commit is contained in:
Justin Edmund 2020-09-15 04:15:01 -07:00
parent b6d50e4157
commit 37140bf9e1
2 changed files with 6 additions and 0 deletions

View file

@ -4,6 +4,10 @@ html {
padding: 16px;
}
body.no-scroll {
overflow: hidden;
}
a {
text-decoration: none;
}

View file

@ -27,11 +27,13 @@ const Portal = ({ children }) => {
useEffect(() => {
modalRoot.appendChild(modalDiv.current)
return () => {
document.body.classList.remove('no-scroll')
return modalRoot.removeChild(modalDiv.current)
}
}, [modalDiv, modalRoot])
if (modalDiv.current) {
document.body.classList.add('no-scroll')
return createPortal(children, modalDiv.current)
}