@agnos-ui/core
Version:
Framework-agnostic headless component library.
32 lines (31 loc) • 912 B
JavaScript
import { noop } from "./utils/func.js";
const internalRemoveScrollbars = () => {
const scrollbarWidth = Math.abs(window.innerWidth - document.documentElement.clientWidth);
const body = document.body;
const bodyStyle = body.style;
const { overflow, paddingRight } = bodyStyle;
if (scrollbarWidth > 0) {
const actualPadding = parseFloat(window.getComputedStyle(body).paddingRight);
bodyStyle.paddingRight = `${actualPadding + scrollbarWidth}px`;
}
bodyStyle.overflow = "hidden";
return () => {
if (scrollbarWidth > 0) {
bodyStyle.paddingRight = paddingRight;
}
bodyStyle.overflow = overflow;
};
};
let internalRevert = noop;
const removeScrollbars = () => {
internalRevert();
internalRevert = internalRemoveScrollbars();
};
const revertScrollbars = () => {
internalRevert();
internalRevert = noop;
};
export {
revertScrollbars as a,
removeScrollbars as r
};