@enact/sandstone
Version:
Large-screen/TV support library for Enact, containing a variety of UI components.
31 lines (29 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.usePreventScroll = exports["default"] = void 0;
var _utilEvent = _interopRequireDefault(require("@enact/ui/useScroll/utilEvent"));
var _react = require("react");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var usePreventScroll = exports.usePreventScroll = function usePreventScroll(props, instances) {
// Hooks
(0, _react.useEffect)(function () {
var rtl = props.rtl,
scrollMode = props.scrollMode;
var scrollContentRef = instances.scrollContentRef;
var scrollContentNode = scrollContentRef.current;
if (scrollMode === 'translate' && scrollContentNode) {
var preventScroll = function preventScroll() {
scrollContentNode.scrollTop = 0;
scrollContentNode.scrollLeft = rtl ? scrollContentNode.scrollWidth : 0;
};
(0, _utilEvent["default"])('scroll').addEventListener(scrollContentNode, preventScroll);
return function () {
// remove a function for preventing native scrolling by Spotlight
(0, _utilEvent["default"])('scroll').removeEventListener(scrollContentNode, preventScroll);
};
}
}, [props, instances]);
};
var _default = exports["default"] = usePreventScroll;