diff --git a/packages/frontend/src/components/MkPullToRefresh.vue b/packages/frontend/src/components/MkPullToRefresh.vue index 02f13a2295..8d411595fd 100644 --- a/packages/frontend/src/components/MkPullToRefresh.vue +++ b/packages/frontend/src/components/MkPullToRefresh.vue @@ -64,13 +64,15 @@ function getScreenY(event: TouchEvent | MouseEvent | PointerEvent): number { // When at the top of the page, disable vertical overscroll so passive touch listeners can take over. function lockDownScroll() { - scrollEl!.style.touchAction = 'pan-x pan-down pinch-zoom'; - scrollEl!.style.overscrollBehavior = 'none'; + if (scrollEl == null) return; + scrollEl.style.touchAction = 'pan-x pan-down pinch-zoom'; + scrollEl.style.overscrollBehavior = 'none'; } function unlockDownScroll() { - scrollEl!.style.touchAction = 'auto'; - scrollEl!.style.overscrollBehavior = 'contain'; + if (scrollEl == null) return; + scrollEl.style.touchAction = 'auto'; + scrollEl.style.overscrollBehavior = 'contain'; } function moveStart(event: PointerEvent) { @@ -211,6 +213,7 @@ onMounted(() => { }); onUnmounted(() => { + unlockDownScroll(); if (rootEl.value) rootEl.value.removeEventListener('pointerdown', moveStart); if (rootEl.value) rootEl.value.removeEventListener('touchend', toggleScrollLockOnTouchEnd); });