diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-04-02 21:27:05 -0400 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-04-02 21:27:05 -0400 |
| commit | d7784ea4ffa42c5b3c0638ed26cade728e8d57b5 (patch) | |
| tree | 1ccde71b197d9c2cf838051db0ddd23441f73f8d /packages | |
| parent | fix vue error from missing import in preferences.vue (diff) | |
| download | sharkey-d7784ea4ffa42c5b3c0638ed26cade728e8d57b5.tar.gz sharkey-d7784ea4ffa42c5b3c0638ed26cade728e8d57b5.tar.bz2 sharkey-d7784ea4ffa42c5b3c0638ed26cade728e8d57b5.zip | |
improve debugging stack traces in MkPagination.vue
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/frontend/src/components/MkPagination.vue | 33 |
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> => { |