diff --git a/packages/frontend/src/components/MkNotifications.vue b/packages/frontend/src/components/MkNotifications.vue index 74712c00f2..2354df5550 100644 --- a/packages/frontend/src/components/MkNotifications.vue +++ b/packages/frontend/src/components/MkNotifications.vue @@ -79,7 +79,7 @@ const POLLING_INTERVAL = 1000 * 15; if (!store.s.realtimeMode) { useInterval(async () => { - const isTop = isHeadVisible(rootEl.value, 16); + const isTop = rootEl.value == null ? false : isHeadVisible(rootEl.value, 16); paginator.fetchNewer({ toQueue: !isTop, }); diff --git a/packages/frontend/src/components/MkPagination.vue b/packages/frontend/src/components/MkPagination.vue index 98255ad83a..1252982b8a 100644 --- a/packages/frontend/src/components/MkPagination.vue +++ b/packages/frontend/src/components/MkPagination.vue @@ -71,10 +71,6 @@ function appearFetchMore() { paginator.fetchOlder(); } -onMounted(() => { - paginator.init(); -}); - defineExpose({ paginator: paginator, }); diff --git a/packages/frontend/src/components/MkTimeline.vue b/packages/frontend/src/components/MkTimeline.vue index 0391f9819d..a4c8e0d68d 100644 --- a/packages/frontend/src/components/MkTimeline.vue +++ b/packages/frontend/src/components/MkTimeline.vue @@ -112,7 +112,7 @@ const POLLING_INTERVAL = 1000 * 15; if (!store.s.realtimeMode) { useInterval(async () => { - const isTop = isHeadVisible(rootEl.value, 16); + const isTop = rootEl.value == null ? false : isHeadVisible(rootEl.value, 16); paginator.fetchNewer({ toQueue: !isTop, }); @@ -313,10 +313,6 @@ const paginator = usePagination({ ctx: paginationQuery, }); -onMounted(() => { - paginator.init(); -}); - onUnmounted(() => { disconnectChannel(); }); diff --git a/packages/frontend/src/use/use-pagination.ts b/packages/frontend/src/use/use-pagination.ts index 57cc06d474..211a880d75 100644 --- a/packages/frontend/src/use/use-pagination.ts +++ b/packages/frontend/src/use/use-pagination.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { computed, isRef, ref, watch } from 'vue'; +import { computed, isRef, onMounted, ref, watch } from 'vue'; import * as Misskey from 'misskey-js'; import type { ComputedRef, Ref, ShallowRef } from 'vue'; import { misskeyApi } from '@/utility/misskey-api.js'; @@ -178,6 +178,10 @@ export function usePagination { + init(); + }); + return { items, queue,