summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-04-03 11:50:17 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-04-03 11:50:17 +0900
commitc032dd1214df6f7640e0ee2a39d25796e622a1b2 (patch)
tree6fd20693096fdc905c5b98059d8a90b7fa159766
parentperf(backend): cache timeline of a channel to redis (diff)
downloadmisskey-c032dd1214df6f7640e0ee2a39d25796e622a1b2.tar.gz
misskey-c032dd1214df6f7640e0ee2a39d25796e622a1b2.tar.bz2
misskey-c032dd1214df6f7640e0ee2a39d25796e622a1b2.zip
fix(frontend): tweak MkPagination behaviouyr
-rw-r--r--packages/frontend/src/components/MkPagination.vue36
1 files changed, 17 insertions, 19 deletions
diff --git a/packages/frontend/src/components/MkPagination.vue b/packages/frontend/src/components/MkPagination.vue
index 867d432572..cd8af560e4 100644
--- a/packages/frontend/src/components/MkPagination.vue
+++ b/packages/frontend/src/components/MkPagination.vue
@@ -163,21 +163,22 @@ async function init(): Promise<void> {
const params = props.pagination.params ? isRef(props.pagination.params) ? props.pagination.params.value : props.pagination.params : {};
await os.api(props.pagination.endpoint, {
...params,
- limit: props.pagination.noPaging ? (props.pagination.limit || 10) : (props.pagination.limit || 10) + 1,
+ limit: props.pagination.limit ?? 10,
}).then(res => {
for (let i = 0; i < res.length; i++) {
const item = res[i];
if (i === 3) item._shouldInsertAd_ = true;
}
- if (!props.pagination.noPaging && (res.length > (props.pagination.limit || 10))) {
- res.pop();
- if (props.pagination.reversed) moreFetching.value = true;
+
+ if (res.length === 0 || props.pagination.noPaging) {
items.value = res;
- more.value = true;
+ more.value = false;
} else {
+ if (props.pagination.reversed) moreFetching.value = true;
items.value = res;
- more.value = false;
+ more.value = true;
}
+
offset.value = res.length;
error.value = false;
fetching.value = false;
@@ -198,7 +199,7 @@ const fetchMore = async (): Promise<void> => {
const params = props.pagination.params ? isRef(props.pagination.params) ? props.pagination.params.value : props.pagination.params : {};
await os.api(props.pagination.endpoint, {
...params,
- limit: SECOND_FETCH_LIMIT + 1,
+ limit: SECOND_FETCH_LIMIT,
...(props.pagination.offsetMode ? {
offset: offset.value,
} : {
@@ -227,28 +228,26 @@ const fetchMore = async (): Promise<void> => {
});
};
- if (res.length > SECOND_FETCH_LIMIT) {
- res.pop();
-
+ if (res.length === 0) {
if (props.pagination.reversed) {
reverseConcat(res).then(() => {
- more.value = true;
+ more.value = false;
moreFetching.value = false;
});
} else {
items.value = items.value.concat(res);
- more.value = true;
+ more.value = false;
moreFetching.value = false;
}
} else {
if (props.pagination.reversed) {
reverseConcat(res).then(() => {
- more.value = false;
+ more.value = true;
moreFetching.value = false;
});
} else {
items.value = items.value.concat(res);
- more.value = false;
+ more.value = true;
moreFetching.value = false;
}
}
@@ -264,20 +263,19 @@ const fetchMoreAhead = async (): Promise<void> => {
const params = props.pagination.params ? isRef(props.pagination.params) ? props.pagination.params.value : props.pagination.params : {};
await os.api(props.pagination.endpoint, {
...params,
- limit: SECOND_FETCH_LIMIT + 1,
+ limit: SECOND_FETCH_LIMIT,
...(props.pagination.offsetMode ? {
offset: offset.value,
} : {
sinceId: items.value[items.value.length - 1].id,
}),
}).then(res => {
- if (res.length > SECOND_FETCH_LIMIT) {
- res.pop();
+ if (res.length === 0) {
items.value = items.value.concat(res);
- more.value = true;
+ more.value = false;
} else {
items.value = items.value.concat(res);
- more.value = false;
+ more.value = true;
}
offset.value += res.length;
moreFetching.value = false;