UNPKG

@oruga-ui/oruga-next

Version:

UI components for Vue.js and CSS framework agnostic

43 lines (42 loc) 1.48 kB
/*! Oruga v0.11.0 | MIT License | github.com/oruga-ui/oruga */ import { computed, toValue, ref, onBeforeUnmount } from "vue"; import { i as isClient } from "./config-Dl7tu_Ly.mjs"; import { d as defineClasses, g as getActiveClasses } from "./defineClasses-CWB9NuS-.mjs"; function usePreventScrolling(clipScroll) { const scrollClipClasses = defineClasses([ "scrollClipClass", "o-scroll-clip" ]); const scrollKeepClasses = defineClasses([ "scrollKeepClass", "o-scroll-keep" ]); const scrollClass = computed( () => getActiveClasses( toValue(clipScroll) ? scrollClipClasses.value : scrollKeepClasses.value ) ); const savedScrollTop = ref(); onBeforeUnmount(() => toggleScroll(false)); function toggleScroll(active) { if (!isClient) return; if (!scrollClass.value) return; savedScrollTop.value = savedScrollTop.value ? savedScrollTop.value : document.documentElement.scrollTop; if (active) document.body.classList.add(...scrollClass.value); else document.body.classList.remove(...scrollClass.value); if (!toValue(clipScroll)) { if (active) { document.body.style.top = `-${savedScrollTop.value}px`; } else { document.documentElement.scrollTop = savedScrollTop.value; document.body.style.top = ""; savedScrollTop.value = void 0; } } } return toggleScroll; } export { usePreventScrolling as u }; //# sourceMappingURL=usePreventScrolling-CRyyOkPi.mjs.map