diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-06-29 15:11:25 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-06-29 15:11:25 +0900 |
| commit | f1deb89e348eb8f1a39b51e33a0ae33d59529feb (patch) | |
| tree | 2e92a7a21a1bf377719e1b125a9ac44bc14a529e /packages/frontend/src/ui | |
| parent | feat(backend): クリップ内でノートを検索できるように (diff) | |
| download | misskey-f1deb89e348eb8f1a39b51e33a0ae33d59529feb.tar.gz misskey-f1deb89e348eb8f1a39b51e33a0ae33d59529feb.tar.bz2 misskey-f1deb89e348eb8f1a39b51e33a0ae33d59529feb.zip | |
refactor(frontend): improve pagination implementation
Diffstat (limited to 'packages/frontend/src/ui')
| -rw-r--r-- | packages/frontend/src/ui/deck/direct-column.vue | 14 | ||||
| -rw-r--r-- | packages/frontend/src/ui/deck/mentions-column.vue | 16 |
2 files changed, 13 insertions, 17 deletions
diff --git a/packages/frontend/src/ui/deck/direct-column.vue b/packages/frontend/src/ui/deck/direct-column.vue index c8b174da09..c92ab49e31 100644 --- a/packages/frontend/src/ui/deck/direct-column.vue +++ b/packages/frontend/src/ui/deck/direct-column.vue @@ -7,35 +7,33 @@ SPDX-License-Identifier: AGPL-3.0-only <XColumn :column="column" :isStacked="isStacked" :refresher="() => reloadTimeline()"> <template #header><i class="ti ti-mail" style="margin-right: 8px;"></i>{{ column.name || i18n.ts._deck._columns.direct }}</template> - <MkNotesTimeline ref="tlComponent" :pagination="pagination"/> + <MkNotesTimeline :paginator="paginator"/> </XColumn> </template> <script lang="ts" setup> -import { ref, useTemplateRef } from 'vue'; +import { markRaw, ref } from 'vue'; import XColumn from './column.vue'; import type { Column } from '@/deck.js'; import MkNotesTimeline from '@/components/MkNotesTimeline.vue'; import { i18n } from '@/i18n.js'; +import { Paginator } from '@/utility/paginator.js'; defineProps<{ column: Column; isStacked: boolean; }>(); -const pagination = { - endpoint: 'notes/mentions' as const, +const paginator = markRaw(new Paginator('notes/mentions', { limit: 10, params: { visibility: 'specified', }, -}; - -const tlComponent = useTemplateRef('tlComponent'); +})); function reloadTimeline() { return new Promise<void>((res) => { - tlComponent.value?.reload().then(() => { + paginator.reload().then(() => { res(); }); }); diff --git a/packages/frontend/src/ui/deck/mentions-column.vue b/packages/frontend/src/ui/deck/mentions-column.vue index 640e933f23..1244f68ef5 100644 --- a/packages/frontend/src/ui/deck/mentions-column.vue +++ b/packages/frontend/src/ui/deck/mentions-column.vue @@ -7,34 +7,32 @@ SPDX-License-Identifier: AGPL-3.0-only <XColumn :column="column" :isStacked="isStacked" :refresher="() => reloadTimeline()"> <template #header><i class="ti ti-at" style="margin-right: 8px;"></i>{{ column.name || i18n.ts._deck._columns.mentions }}</template> - <MkNotesTimeline ref="tlComponent" :pagination="pagination"/> + <MkNotesTimeline :paginator="paginator"/> </XColumn> </template> <script lang="ts" setup> -import { ref, useTemplateRef } from 'vue'; +import { markRaw, ref } from 'vue'; import XColumn from './column.vue'; import type { Column } from '@/deck.js'; import { i18n } from '@/i18n.js'; import MkNotesTimeline from '@/components/MkNotesTimeline.vue'; +import { Paginator } from '@/utility/paginator.js'; defineProps<{ column: Column; isStacked: boolean; }>(); -const tlComponent = useTemplateRef('tlComponent'); +const paginator = markRaw(new Paginator('notes/mentions', { + limit: 10, +})); function reloadTimeline() { return new Promise<void>((res) => { - tlComponent.value?.reload().then(() => { + paginator.reload().then(() => { res(); }); }); } - -const pagination = { - endpoint: 'notes/mentions' as const, - limit: 10, -}; </script> |