UNPKG

@oruga-ui/oruga-next

Version:

UI components for Vue.js and CSS framework agnostic

42 lines (41 loc) 1.5 kB
"use strict"; /*! Oruga v0.11.0 | MIT License | github.com/oruga-ui/oruga */ const vue = require("vue"); const config = require("./config-eYBvpFOZ.cjs"); const defineClasses = require("./defineClasses-Cqhbv-UT.cjs"); function usePreventScrolling(clipScroll) { const scrollClipClasses = defineClasses.defineClasses([ "scrollClipClass", "o-scroll-clip" ]); const scrollKeepClasses = defineClasses.defineClasses([ "scrollKeepClass", "o-scroll-keep" ]); const scrollClass = vue.computed( () => defineClasses.getActiveClasses( vue.toValue(clipScroll) ? scrollClipClasses.value : scrollKeepClasses.value ) ); const savedScrollTop = vue.ref(); vue.onBeforeUnmount(() => toggleScroll(false)); function toggleScroll(active) { if (!config.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 (!vue.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; } exports.usePreventScrolling = usePreventScrolling; //# sourceMappingURL=usePreventScrolling-Ct3PCoON.cjs.map