UNPKG

usehooks-ts

Version:

React hook library, ready to use, written in Typescript.

34 lines 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); function useLockedBody(initialLocked) { if (initialLocked === void 0) { initialLocked = false; } var _a = (0, react_1.useState)(initialLocked), locked = _a[0], setLocked = _a[1]; (0, react_1.useLayoutEffect)(function () { if (!locked) { return; } var originalOverflow = document.body.style.overflow; var originalPaddingRight = document.body.style.paddingRight; document.body.style.overflow = 'hidden'; var root = document.getElementById('___gatsby'); var scrollBarWidth = root ? root.offsetWidth - root.scrollWidth : 0; if (scrollBarWidth) { document.body.style.paddingRight = "".concat(scrollBarWidth, "px"); } return function () { document.body.style.overflow = originalOverflow; if (scrollBarWidth) { document.body.style.paddingRight = originalPaddingRight; } }; }, [locked]); (0, react_1.useEffect)(function () { if (locked !== initialLocked) { setLocked(initialLocked); } }, [initialLocked]); return [locked, setLocked]; } exports.default = useLockedBody; //# sourceMappingURL=useLockedBody.js.map