use-lock-body-scroll
Since: ver.12.5.0 as `useLockBodyScroll`
10.0.0 as `useBodyStyleModifications`
A hook that blocks the document body from scrolling when active.
This is used in cases where a popup or other modal-like component is currently active and demands the user focus by blocking interactions with the content beneath the modal.
import { Heading, Button, Box, useLockBodyScroll } from '@flixbus/honeycomb-react'; const modalRef = React.useRef(); const [active, setActive] = React.useState(false); useLockBodyScroll(active); const openModal = () => { setActive(true); modalRef.current.showModal(); }; const closeModal = () => { setActive(false); modalRef.current.close(); }; <> <Box> <Button onClick={openModal}> Open modal </Button> </Box> {[1, 2, 3, 4, 5, 6, 7].map((index) => ( <Box key={index} appearance={(index % 2) ? 'success' : 'danger'} style={{ height: '10vh' }}>Some content</Box> ))} <dialog ref={modalRef}> <Button onClick={closeModal}> Close modal </Button> </dialog> </>