diff --git a/src/_common b/src/_common index a8244de9b..6224ffcc9 160000 --- a/src/_common +++ b/src/_common @@ -1 +1 @@ -Subproject commit a8244de9be4d0f13a9861c7377a4c9b3799fdf5f +Subproject commit 6224ffcc9877f660564217203ded6897fbbfed74 diff --git a/src/popup/__test__/__snapshots__/demo.test.jsx.snap b/src/popup/__test__/__snapshots__/demo.test.jsx.snap index 410c4ba07..181526f65 100644 --- a/src/popup/__test__/__snapshots__/demo.test.jsx.snap +++ b/src/popup/__test__/__snapshots__/demo.test.jsx.snap @@ -92,26 +92,7 @@ exports[`Popup > Popup baseVue demo works fine 1`] = ` - - - - + `; @@ -296,26 +277,7 @@ exports[`Popup > Popup mobileVue demo works fine 1`] = ` - - - - + diff --git a/src/popup/demos/base.vue b/src/popup/demos/base.vue index 888b1e3d0..de25ec165 100644 --- a/src/popup/demos/base.vue +++ b/src/popup/demos/base.vue @@ -3,7 +3,7 @@ {{ p.text }} - + diff --git a/src/popup/popup.vue b/src/popup/popup.vue index e49ac5eb8..36c106e17 100644 --- a/src/popup/popup.vue +++ b/src/popup/popup.vue @@ -4,6 +4,7 @@
(); const currentInstance = getCurrentInstance(); const [currentVisible, setVisible] = useDefault( @@ -56,9 +56,8 @@ export default defineComponent({ // 因为开启 destroyOnClose,会影响 transition 的动画,因此需要前后设置 visible watch(currentVisible, (v) => { - wrapperVisible.value = v; - if (v) { + wrapperVisible.value = v; if (props.destroyOnClose) { nextTick(() => { innerVisible.value = v; @@ -132,37 +131,9 @@ export default defineComponent({ }, ); - const lock = () => { - if (!lockTimes && isBrowser) { - document.body.classList.add(bodyLockClass); - } - - lockTimes++; - }; - - const unlock = () => { - if (lockTimes) { - lockTimes--; + useLockScroll(popupRef, () => wrapperVisible.value && props.preventScrollThrough, popupClass.value); - if (!lockTimes && isBrowser) { - document.body.classList.remove(bodyLockClass); - } - } - }; - - const shouldLock = computed(() => wrapperVisible.value && props.preventScrollThrough); - - watch( - () => shouldLock.value, - (value) => { - value ? lock() : unlock(); - }, - ); - onUnmounted(() => { - unlock(); - }); return { - name, to, popupClass, wrapperVisible,