Update use-pagination.ts
This commit is contained in:
parent
b8200f8332
commit
c800cf2a82
|
@ -134,8 +134,7 @@ export function usePagination<T extends MisskeyEntity>(props: {
|
||||||
canFetchOlder.value = false;
|
canFetchOlder.value = false;
|
||||||
fetchingOlder.value = false;
|
fetchingOlder.value = false;
|
||||||
} else {
|
} else {
|
||||||
items.value.push(...res);
|
pushItems(res);
|
||||||
if (props.useShallowRef) triggerRef(items);
|
|
||||||
canFetchOlder.value = true;
|
canFetchOlder.value = true;
|
||||||
fetchingOlder.value = false;
|
fetchingOlder.value = false;
|
||||||
}
|
}
|
||||||
|
@ -166,9 +165,7 @@ export function usePagination<T extends MisskeyEntity>(props: {
|
||||||
}
|
}
|
||||||
queuedAheadItemsCount.value = aheadQueue.length;
|
queuedAheadItemsCount.value = aheadQueue.length;
|
||||||
} else {
|
} else {
|
||||||
items.value.unshift(...res.toReversed());
|
unshiftItems(res.toReversed());
|
||||||
trim(false);
|
|
||||||
if (props.useShallowRef) triggerRef(items);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -181,17 +178,19 @@ export function usePagination<T extends MisskeyEntity>(props: {
|
||||||
|
|
||||||
function unshiftItems(newItems: T[]) {
|
function unshiftItems(newItems: T[]) {
|
||||||
if (newItems.length === 0) return; // これやらないと余計なre-renderが走る
|
if (newItems.length === 0) return; // これやらないと余計なre-renderが走る
|
||||||
items.value.unshift(...newItems);
|
items.value.unshift(...newItems.filter(x => !items.value.some(y => y.id === x.id))); // ストリーミングやポーリングのタイミングによっては重複することがあるため
|
||||||
trim(false);
|
trim(false);
|
||||||
if (props.useShallowRef) triggerRef(items);
|
if (props.useShallowRef) triggerRef(items);
|
||||||
}
|
}
|
||||||
|
|
||||||
function pushItems(oldItems: T[]) {
|
function pushItems(oldItems: T[]) {
|
||||||
|
if (newItems.length === 0) return; // これやらないと余計なre-renderが走る
|
||||||
items.value.push(...oldItems);
|
items.value.push(...oldItems);
|
||||||
if (props.useShallowRef) triggerRef(items);
|
if (props.useShallowRef) triggerRef(items);
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepend(item: T) {
|
function prepend(item: T) {
|
||||||
|
if (items.value.some(x => x.id === item.id)) return;
|
||||||
items.value.unshift(item);
|
items.value.unshift(item);
|
||||||
trim(false);
|
trim(false);
|
||||||
if (props.useShallowRef) triggerRef(items);
|
if (props.useShallowRef) triggerRef(items);
|
||||||
|
|
Loading…
Reference in New Issue