diff --git a/components/Modal.vue b/components/Modal.vue index 2e7710f20..c76f404a3 100644 --- a/components/Modal.vue +++ b/components/Modal.vue @@ -10,38 +10,33 @@ export interface Props { showCloseX?: boolean; title?: string; } - const props = withDefaults(defineProps(), { maxWidth: 'sm:max-w-lg', open: false, showCloseX: false, }); +watchEffect(() => { + // toggle body scrollability + return props.open + ? document.body.style.setProperty('overflow', 'hidden') + : document.body.style.removeProperty('overflow'); +}); const emit = defineEmits(['close']); const closeModal = () => { - console.debug('[closeModal]'); emit('close'); }; const { trapRef } = useFocusTrap(); const ariaLablledById = computed((): string|undefined => props.title ? `ModalTitle-${Math.random()}`.replace('0.', '') : undefined); - -onMounted(() => { - console.debug('[onMounted]'); - document.body.style.setProperty('overflow', 'hidden'); -}); - -onBeforeUnmount(() => { - document.removeEventListener('keyup', () => {}); - document.body.style.removeProperty('overflow'); -});