enhance(frontend/PullToRefresh): コンポーネントがDOMから消えた時点でタッチ操作などのコールバック関数が止まるように (MisskeyIO#244)
This commit is contained in:
parent
15ae1605ec
commit
92dd9a0782
|
@ -23,7 +23,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, onUnmounted, ref, shallowRef } from 'vue';
|
import { onMounted, onUnmounted, onActivated, onDeactivated, ref, shallowRef } from 'vue';
|
||||||
import { i18n } from '@/i18n.js';
|
import { i18n } from '@/i18n.js';
|
||||||
import { getScrollContainer } from '@@/js/scroll.js';
|
import { getScrollContainer } from '@@/js/scroll.js';
|
||||||
import { isHorizontalSwipeSwiping } from '@/scripts/touch.js';
|
import { isHorizontalSwipeSwiping } from '@/scripts/touch.js';
|
||||||
|
@ -198,8 +198,8 @@ function unregisterEventListenersForReadyToPull() {
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
isRefreshing.value = false;
|
||||||
if (rootEl.value == null) return;
|
if (rootEl.value == null) return;
|
||||||
|
|
||||||
scrollEl = getScrollContainer(rootEl.value);
|
scrollEl = getScrollContainer(rootEl.value);
|
||||||
if (scrollEl == null) return;
|
if (scrollEl == null) return;
|
||||||
|
|
||||||
|
@ -210,7 +210,18 @@ onMounted(() => {
|
||||||
registerEventListenersForReadyToPull();
|
registerEventListenersForReadyToPull();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
|
isRefreshing.value = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
onDeactivated(() => {
|
||||||
|
scrollEl!.style.touchAction = 'auto';
|
||||||
|
isRefreshing.value = true;
|
||||||
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
scrollEl!.style.touchAction = 'auto';
|
||||||
|
isRefreshing.value = true;
|
||||||
if (scrollEl) scrollEl.removeEventListener('scroll', onScrollContainerScroll);
|
if (scrollEl) scrollEl.removeEventListener('scroll', onScrollContainerScroll);
|
||||||
|
|
||||||
unregisterEventListenersForReadyToPull();
|
unregisterEventListenersForReadyToPull();
|
||||||
|
|
Loading…
Reference in New Issue