Skip to content
Snippets Groups Projects
Commit c032dd12 authored by syuilo's avatar syuilo
Browse files

fix(frontend): tweak MkPagination behaviouyr

parent 4f9f625e
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment