summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-04-02 21:27:05 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-04-02 21:27:05 -0400
commitd7784ea4ffa42c5b3c0638ed26cade728e8d57b5 (patch)
tree1ccde71b197d9c2cf838051db0ddd23441f73f8d
parentfix vue error from missing import in preferences.vue (diff)
downloadsharkey-d7784ea4ffa42c5b3c0638ed26cade728e8d57b5.tar.gz
sharkey-d7784ea4ffa42c5b3c0638ed26cade728e8d57b5.tar.bz2
sharkey-d7784ea4ffa42c5b3c0638ed26cade728e8d57b5.zip
improve debugging stack traces in MkPagination.vue
-rw-r--r--packages/frontend/src/components/MkPagination.vue33
1 files changed, 15 insertions, 18 deletions
diff --git a/packages/frontend/src/components/MkPagination.vue b/packages/frontend/src/components/MkPagination.vue
index ee56533526..7ad3c24732 100644
--- a/packages/frontend/src/components/MkPagination.vue
+++ b/packages/frontend/src/components/MkPagination.vue
@@ -244,23 +244,24 @@ const reload = (): Promise<void> => {
const fetchMore = async (): Promise<void> => {
if (!more.value || fetching.value || moreFetching.value || items.value.size === 0) return;
moreFetching.value = true;
- const params = getActualValue<Paging['params']>(props.pagination.params, {});
- const offsetMode = getActualValue(props.pagination.offsetMode, false);
- await misskeyApi<MisskeyEntity[]>(props.pagination.endpoint, {
- ...params,
- limit: SECOND_FETCH_LIMIT,
- ...(offsetMode ? {
- offset: items.value.size,
- } : {
- untilId: Array.from(items.value.keys()).at(-1),
- }),
- }).then(res => {
+ try {
+ const params = getActualValue<Paging['params']>(props.pagination.params, {});
+ const offsetMode = getActualValue(props.pagination.offsetMode, false);
+ const res = await misskeyApi<MisskeyEntity[]>(props.pagination.endpoint, {
+ ...params,
+ limit: SECOND_FETCH_LIMIT,
+ ...(offsetMode ? {
+ offset: items.value.size,
+ } : {
+ untilId: Array.from(items.value.keys()).at(-1),
+ }),
+ });
for (let i = 0; i < res.length; i++) {
const item = res[i];
if (i === 10) item._shouldInsertAd_ = true;
}
- const reverseConcat = _res => {
+ const reverseConcat = (_res: typeof res) => {
const oldHeight = scrollableElement.value ? scrollableElement.value.scrollHeight : getBodyScrollHeight();
const oldScroll = scrollableElement.value ? scrollableElement.value.scrollTop : window.scrollY;
@@ -281,28 +282,24 @@ const fetchMore = async (): Promise<void> => {
if (props.pagination.reversed) {
reverseConcat(res).then(() => {
more.value = false;
- moreFetching.value = false;
});
} else {
items.value = concatMapWithArray(items.value, res);
more.value = false;
- moreFetching.value = false;
}
} else {
if (props.pagination.reversed) {
reverseConcat(res).then(() => {
more.value = true;
- moreFetching.value = false;
});
} else {
items.value = concatMapWithArray(items.value, res);
more.value = true;
- moreFetching.value = false;
}
}
- }, err => {
+ } finally {
moreFetching.value = false;
- });
+ }
};
const fetchMoreAhead = async (): Promise<void> => {