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