vuestic-ui
Version:
Vue 3 UI Framework
43 lines (42 loc) • 1.19 kB
JavaScript
import { watchEffect, onBeforeUnmount } from "vue";
import { u as useCurrentComponentId } from "../../../composables/useCurrentComponentId.js";
import { u as useDocument } from "../../../composables/useDocument.js";
const openedModals = [];
const useBlur = (shouldBlur, isModalShown) => {
const id = useCurrentComponentId();
const document = useDocument();
const blur = () => {
var _a;
if (openedModals.includes(id)) {
return;
}
openedModals.push(id);
(_a = document.value) == null ? void 0 : _a.body.classList.add("va-modal-overlay-background--blurred");
};
const removeBlur = () => {
var _a;
const modalIndex = openedModals.indexOf(id);
if (modalIndex === -1) {
return;
}
openedModals.splice(modalIndex, 1);
if (openedModals.length === 0) {
(_a = document.value) == null ? void 0 : _a.body.classList.remove("va-modal-overlay-background--blurred");
}
};
watchEffect(() => {
if (!shouldBlur.value) {
return;
}
if (isModalShown.value) {
blur();
} else {
removeBlur();
}
});
onBeforeUnmount(removeBlur);
};
export {
useBlur as u
};
//# sourceMappingURL=useBlur.js.map