This commit is contained in:
tamaina 2023-07-18 07:24:44 +00:00
parent f3a0839552
commit d5b4fa7e50

View file

@ -51,7 +51,6 @@ import { i18n } from '@/i18n';
const SECOND_FETCH_LIMIT = 30; const SECOND_FETCH_LIMIT = 30;
const TOLERANCE = 6; const TOLERANCE = 6;
const APPEAR_MINIMUM_INTERVAL = 600; const APPEAR_MINIMUM_INTERVAL = 600;
const BACKGROUND_PAUSE_WAIT_SEC = 10;
export type Paging<E extends keyof misskey.Endpoints = keyof misskey.Endpoints> = { export type Paging<E extends keyof misskey.Endpoints = keyof misskey.Endpoints> = {
endpoint: E; endpoint: E;
@ -159,9 +158,6 @@ const scrollableElementOrHtml = $computed(() => scrollableElement ?? document.ge
const visibility = useDocumentVisibility(); const visibility = useDocumentVisibility();
const isPausingUpdateByVisibility = ref(false);
const timerForSetPause = ref<number | null>(null);
const isPausingUpdateByExecutingQueue = ref(false); const isPausingUpdateByExecutingQueue = ref(false);
//#region scrolling //#region scrolling
@ -346,10 +342,9 @@ const fetchMore = async (): Promise<void> => {
if (res.length === 0) { if (res.length === 0) {
if (props.pagination.reversed) { if (props.pagination.reversed) {
reverseConcat(res).then(() => { reverseConcat(res);
more.value = false; more.value = false;
moreFetching.value = false; moreFetching.value = false;
});
} else { } else {
items.value = concatMapWithArray(items.value, res); items.value = concatMapWithArray(items.value, res);
more.value = false; more.value = false;
@ -357,10 +352,9 @@ const fetchMore = async (): Promise<void> => {
} }
} else { } else {
if (props.pagination.reversed) { if (props.pagination.reversed) {
reverseConcat(res).then(() => { reverseConcat(res);
more.value = true; more.value = true;
moreFetching.value = false; moreFetching.value = false;
});
} else { } else {
items.value = concatMapWithArray(items.value, res); items.value = concatMapWithArray(items.value, res);
more.value = true; more.value = true;
@ -425,30 +419,9 @@ const appearFetchMoreAhead = async (): Promise<void> => {
fetchMoreAppearTimeout(); fetchMoreAppearTimeout();
}; };
function visibilityChange() {
if (visibility.value === 'hidden') {
timerForSetPause.value = window.setTimeout(() => {
isPausingUpdateByVisibility.value = true;
timerForSetPause.value = null;
},
BACKGROUND_PAUSE_WAIT_SEC * 1000);
} else { // 'visible'
if (timerForSetPause.value) {
clearTimeout(timerForSetPause.value);
timerForSetPause.value = null;
} else {
isPausingUpdateByVisibility.value = false;
if (!backed && active.value) {
executeQueue();
}
}
}
}
onActivated(() => { onActivated(() => {
nextTick(() => { nextTick(() => {
active.value = true; active.value = true;
visibilityChange();
}); });
}); });
@ -456,8 +429,6 @@ onDeactivated(() => {
active.value = false; active.value = false;
}); });
watch(visibility, visibilityChange);
/** /**
* 最新のものとして1つだけアイテムを追加する * 最新のものとして1つだけアイテムを追加する
* ストリーミングから降ってきたアイテムはこれで追加する * ストリーミングから降ってきたアイテムはこれで追加する
@ -478,7 +449,7 @@ const prepend = (item: MisskeyEntity): void => {
if (!backed) { if (!backed) {
// //
if (items.value.has(item.id)) return; // if (items.value.has(item.id)) return; //
if (isPausingUpdateByVisibility.value) { if (visibility.value === 'hidden') {
// //
// prependQueue // prependQueue
prependQueue(item); prependQueue(item);
@ -573,10 +544,6 @@ onMounted(() => {
}); });
onBeforeUnmount(() => { onBeforeUnmount(() => {
if (timerForSetPause.value) {
clearTimeout(timerForSetPause.value);
timerForSetPause.value = null;
}
if (preventAppearFetchMoreTimer.value) { if (preventAppearFetchMoreTimer.value) {
clearTimeout(preventAppearFetchMoreTimer.value); clearTimeout(preventAppearFetchMoreTimer.value);
preventAppearFetchMoreTimer.value = null; preventAppearFetchMoreTimer.value = null;