@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
23 lines (22 loc) • 985 B
JavaScript
"use client";
require("../../_virtual/_rolldown/runtime.cjs");
let react = require("react");
let _mantine_hooks = require("@mantine/hooks");
//#region packages/@mantine/core/src/components/ModalBase/use-lock-scroll.ts
function useLockScroll({ opened, transitionDuration }) {
const [shouldLockScroll, setShouldLockScroll] = (0, react.useState)(opened);
const timeout = (0, react.useRef)(-1);
const _transitionDuration = (0, _mantine_hooks.useReducedMotion)() ? 0 : transitionDuration;
(0, 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;
}
//#endregion
exports.useLockScroll = useLockScroll;
//# sourceMappingURL=use-lock-scroll.cjs.map