UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

55 lines (40 loc) 1.78 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _react = require("react"); var _useTheme2 = _interopRequireDefault(require("../useTheme")); var _useIsMounted = _interopRequireDefault(require("../useIsMounted")); var _lockScrolling = require("./lock-scrolling"); var useLockScrolling = function useLockScrolling(ref) { var lock = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var dependencies = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var _useTheme = (0, _useTheme2.default)(), _useTheme$lockScrolli = _useTheme.lockScrolling, themeLockScrolling = _useTheme$lockScrolli === void 0 ? true : _useTheme$lockScrolli; var isMounted = (0, _useIsMounted.default)(); (0, _react.useEffect)(function () { var el = ref.current; if (el) { if (lock && themeLockScrolling) { (0, _lockScrolling.disableBodyScroll)(el); } if (!lock || !themeLockScrolling) { (0, _lockScrolling.enableBodyScroll)(el); } } return function () { // disabling this because we're interested in precisely that changed value // eslint-disable-next-line react-hooks/exhaustive-deps var didRefChange = el !== ref.current; if (el && (!isMounted() || didRefChange)) { (0, _lockScrolling.enableBodyScroll)(el); } }; }, [ref, lock, themeLockScrolling, isMounted].concat((0, _toConsumableArray2.default)(dependencies))); }; var _default = useLockScrolling; exports.default = _default;