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; padding: 16px;
} }
body.no-scroll {
overflow: hidden;
}
a { a {
text-decoration: none; text-decoration: none;
} }

View file

@ -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)
} }