@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
28 lines (24 loc) • 906 B
JavaScript
'use client';
;
var React = require('react');
var hooks = require('@mantine/hooks');
function useLockScroll({ opened, transitionDuration }) {
const [shouldLockScroll, setShouldLockScroll] = React.useState(opened);
const timeout = React.useRef(-1);
const reduceMotion = hooks.useReducedMotion();
const _transitionDuration = reduceMotion ? 0 : transitionDuration;
React.useEffect(() => {
if (opened) {
setShouldLockScroll(true);
window.clearTimeout(timeout.current);
} else if (_transitionDuration === 0) {
setShouldLockScroll(false);
} else {
timeout.current = window.setTimeout(() => setShouldLockScroll(false), _transitionDuration);
}
return () => window.clearTimeout(timeout.current);
}, [opened, _transitionDuration]);
return shouldLockScroll;
}
exports.useLockScroll = useLockScroll;
//# sourceMappingURL=use-lock-scroll.cjs.map