diff --git a/packages/frontend/src/components/MkFileListForAdmin.vue b/packages/frontend/src/components/MkFileListForAdmin.vue index eb0d4d61ac2922c1575655ebede2b843a6a70986..b60f058df0a17ced370506d6752f051e0a2f7483 100644 --- a/packages/frontend/src/components/MkFileListForAdmin.vue +++ b/packages/frontend/src/components/MkFileListForAdmin.vue @@ -38,14 +38,14 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import * as Misskey from 'misskey-js'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkDriveFileThumbnail from '@/components/MkDriveFileThumbnail.vue'; import bytes from '@/filters/bytes.js'; import { i18n } from '@/i18n.js'; import { dateString } from '@/filters/date.js'; const props = defineProps<{ - pagination: any; + pagination: Paging; viewMode: 'grid' | 'list'; }>(); </script> diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue index e287890e2c0b97caf4f425f6d403b0acc33f60ea..a3fc3058d9b6b679525bf0de3a467ed1eba428f7 100644 --- a/packages/frontend/src/components/MkNoteDetailed.vue +++ b/packages/frontend/src/components/MkNoteDetailed.vue @@ -253,7 +253,7 @@ import { checkAnimationFromMfm } from '@/scripts/check-animated-mfm.js'; import MkRippleEffect from '@/components/MkRippleEffect.vue'; import { showMovedDialog } from '@/scripts/show-moved-dialog.js'; import MkUserCardMini from '@/components/MkUserCardMini.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkReactionIcon from '@/components/MkReactionIcon.vue'; import MkButton from '@/components/MkButton.vue'; @@ -361,7 +361,7 @@ const renotesPagination = computed(() => ({ params: { noteId: appearNote.value.id, }, -})); +} satisfies Paging)); const reactionsPagination = computed(() => ({ endpoint: 'notes/reactions', @@ -370,7 +370,7 @@ const reactionsPagination = computed(() => ({ noteId: appearNote.value.id, type: reactionTabType.value, }, -})); +} satisfies Paging)); async function addReplyTo(replyNote: Misskey.entities.Note) { replies.value.unshift(replyNote); diff --git a/packages/frontend/src/components/MkUserSetupDialog.Follow.vue b/packages/frontend/src/components/MkUserSetupDialog.Follow.vue index 5f3f5b81dd08b8816c93e2b93b6de6a7ab1550ea..d924a54ffb187b69fb2bc7462776e2dd6b40e2e5 100644 --- a/packages/frontend/src/components/MkUserSetupDialog.Follow.vue +++ b/packages/frontend/src/components/MkUserSetupDialog.Follow.vue @@ -37,15 +37,15 @@ SPDX-License-Identifier: AGPL-3.0-only import { i18n } from '@/i18n.js'; import MkFolder from '@/components/MkFolder.vue'; import XUser from '@/components/MkUserSetupDialog.User.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; -const pinnedUsers = { endpoint: 'pinned-users', noPaging: true }; +const pinnedUsers = { endpoint: 'pinned-users', noPaging: true } satisfies Paging; const popularUsers = { endpoint: 'users', limit: 10, noPaging: true, params: { state: 'alive', origin: 'local', sort: '+follower', -} }; +} } satisfies Paging; </script> <style lang="scss" module> diff --git a/packages/frontend/src/pages/about.federation.vue b/packages/frontend/src/pages/about.federation.vue index 0de000ee3efbff978bb8d0de94f7dafd3cf2fe5e..ed4e3bfe7a3f8d4a59593ea5f7834cd5c34734fe 100644 --- a/packages/frontend/src/pages/about.federation.vue +++ b/packages/frontend/src/pages/about.federation.vue @@ -82,7 +82,7 @@ const pagination = { state.value === 'nsfw' ? { nsfw: true } : {}), })), -} as Paging; +} satisfies Paging; function getStatus(instance) { if (instance.isSuspended) return 'Suspended'; diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue index c87ec22ef601136f4ad7679b64e5012001a58e74..094d6454f2944e67b81abe83e0d68e26abee59fa 100644 --- a/packages/frontend/src/pages/admin-user.vue +++ b/packages/frontend/src/pages/admin-user.vue @@ -212,7 +212,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js'; import { i18n } from '@/i18n.js'; import { iAmAdmin, $i } from '@/account.js'; import MkRolePreview from '@/components/MkRolePreview.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; const props = withDefaults(defineProps<{ userId: string; @@ -247,7 +247,7 @@ const announcementsPagination = { params: computed(() => ({ userId: props.userId, })), -}; +} satisfies Paging; const expandedRoles = ref([]); function createFetcher() { diff --git a/packages/frontend/src/pages/admin/abuses.vue b/packages/frontend/src/pages/admin/abuses.vue index 92688989d2fc765f58de41e7365a92654af5eee9..03dd6560eccf52e5f8b1e69c41eb947c0ab0fbfd 100644 --- a/packages/frontend/src/pages/admin/abuses.vue +++ b/packages/frontend/src/pages/admin/abuses.vue @@ -56,7 +56,7 @@ import { computed, shallowRef, ref } from 'vue'; import XHeader from './_header_.vue'; import MkSelect from '@/components/MkSelect.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import XAbuseReport from '@/components/MkAbuseReport.vue'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; @@ -77,7 +77,7 @@ const pagination = { reporterOrigin: reporterOrigin.value, targetUserOrigin: targetUserOrigin.value, })), -}; +} satisfies Paging; function resolved(reportId) { reports.value.removeItem(reportId); diff --git a/packages/frontend/src/pages/admin/federation.vue b/packages/frontend/src/pages/admin/federation.vue index 1888a0eb166f53ce0daad8fda6739969112f5cef..55ba0becced72732b4793f46cb51c0a65fe47677 100644 --- a/packages/frontend/src/pages/admin/federation.vue +++ b/packages/frontend/src/pages/admin/federation.vue @@ -63,7 +63,7 @@ import { computed, ref } from 'vue'; import XHeader from './_header_.vue'; import MkInput from '@/components/MkInput.vue'; import MkSelect from '@/components/MkSelect.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkInstanceCardMini from '@/components/MkInstanceCardMini.vue'; import FormSplit from '@/components/form/split.vue'; import { i18n } from '@/i18n.js'; @@ -90,7 +90,7 @@ const pagination = { state.value === 'nsfw' ? { nsfw: true } : {}), })), -}; +} satisfies Paging; function getStatus(instance) { if (instance.isSuspended) return 'Suspended'; diff --git a/packages/frontend/src/pages/admin/invites.vue b/packages/frontend/src/pages/admin/invites.vue index 6314d0ce4ef5f86fed97085f4adbe58cf966d8a4..fe2924d735db3b53e03ddfb1909284eae5a050f6 100644 --- a/packages/frontend/src/pages/admin/invites.vue +++ b/packages/frontend/src/pages/admin/invites.vue @@ -73,7 +73,7 @@ const pagingComponent = shallowRef<InstanceType<typeof MkPagination>>(); const type = ref('all'); const sort = ref('+createdAt'); -const pagination: Paging = { +const pagination = { endpoint: 'admin/invite/list' as const, limit: 10, params: computed(() => ({ @@ -81,7 +81,7 @@ const pagination: Paging = { sort: sort.value, })), offsetMode: true, -}; +} satisfies Paging; const expiresAt = ref(''); const noExpirationDate = ref(true); @@ -97,10 +97,10 @@ async function createWithOptions() { os.alert({ type: 'success', title: i18n.ts.inviteCodeCreated, - text: tickets?.map(x => x.code).join('\n'), + text: tickets.map(x => x.code).join('\n'), }); - tickets?.forEach(ticket => pagingComponent.value?.prepend(ticket)); + tickets.forEach(ticket => pagingComponent.value?.prepend(ticket)); } function deleted(id: string) { diff --git a/packages/frontend/src/pages/admin/modlog.vue b/packages/frontend/src/pages/admin/modlog.vue index acb0336491a7e665b65f5cb9dd48bf4fe9497d9f..ecd0d5c09cedce660703f6be21c0a17846b028e0 100644 --- a/packages/frontend/src/pages/admin/modlog.vue +++ b/packages/frontend/src/pages/admin/modlog.vue @@ -36,7 +36,7 @@ import XHeader from './_header_.vue'; import XModLog from './modlog.ModLog.vue'; import MkSelect from '@/components/MkSelect.vue'; import MkInput from '@/components/MkInput.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; @@ -52,7 +52,7 @@ const pagination = { type: type.value, userId: moderatorId.value === '' ? null : moderatorId.value, })), -}; +} satisfies Paging; console.log(Misskey); diff --git a/packages/frontend/src/pages/admin/roles.role.vue b/packages/frontend/src/pages/admin/roles.role.vue index 92818cc3def0be25db64feb8b48e6e560b63d4aa..77155bdecdcdf713e8252f2d4df8484215ca0503 100644 --- a/packages/frontend/src/pages/admin/roles.role.vue +++ b/packages/frontend/src/pages/admin/roles.role.vue @@ -73,7 +73,7 @@ import { useRouter } from '@/router.js'; import MkButton from '@/components/MkButton.vue'; import MkUserCardMini from '@/components/MkUserCardMini.vue'; import MkInfo from '@/components/MkInfo.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import { infoImageUrl } from '@/instance.js'; const router = useRouter(); @@ -88,7 +88,7 @@ const usersPagination = { params: computed(() => ({ roleId: props.id, })), -}; +} satisfies Paging; const expandedItems = ref([]); diff --git a/packages/frontend/src/pages/admin/users.vue b/packages/frontend/src/pages/admin/users.vue index 1bc4eb4089dbf899745fc54cca9ff025b7792925..a5cb0afdae23e483f0e0448367595ba8f74ae8df 100644 --- a/packages/frontend/src/pages/admin/users.vue +++ b/packages/frontend/src/pages/admin/users.vue @@ -62,7 +62,7 @@ import { computed, shallowRef, ref } from 'vue'; import XHeader from './_header_.vue'; import MkInput from '@/components/MkInput.vue'; import MkSelect from '@/components/MkSelect.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import * as os from '@/os.js'; import { lookupUser } from '@/scripts/lookup-user.js'; import { i18n } from '@/i18n.js'; @@ -88,7 +88,7 @@ const pagination = { hostname: searchHost.value, })), offsetMode: true, -}; +} satisfies Paging; function searchUser() { os.selectUser().then(user => { diff --git a/packages/frontend/src/pages/announcements.vue b/packages/frontend/src/pages/announcements.vue index 705115abb08bc629eb9f053ab1a96a5676ce37a1..42af1886083e4a894d59bc0892d25a06b7ec97f5 100644 --- a/packages/frontend/src/pages/announcements.vue +++ b/packages/frontend/src/pages/announcements.vue @@ -41,7 +41,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { ref, computed } from 'vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkButton from '@/components/MkButton.vue'; import MkInfo from '@/components/MkInfo.vue'; import * as os from '@/os.js'; @@ -55,7 +55,7 @@ const paginationCurrent = { params: { isActive: true, }, -}; +} satisfies Paging; const paginationPast = { endpoint: 'announcements' as const, @@ -63,7 +63,7 @@ const paginationPast = { params: { isActive: false, }, -}; +} satisfies Paging; const paginationEl = ref<InstanceType<typeof MkPagination>>(); diff --git a/packages/frontend/src/pages/channels.vue b/packages/frontend/src/pages/channels.vue index 182703f9da3a119a790ede8345644ffcfa3545d9..43be0bce4718c792bc235812854dbbf2d34f8c3b 100644 --- a/packages/frontend/src/pages/channels.vue +++ b/packages/frontend/src/pages/channels.vue @@ -53,7 +53,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed, onMounted, ref } from 'vue'; import MkChannelPreview from '@/components/MkChannelPreview.vue'; import MkChannelList from '@/components/MkChannelList.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkInput from '@/components/MkInput.vue'; import MkRadios from '@/components/MkRadios.vue'; import MkButton from '@/components/MkButton.vue'; @@ -83,20 +83,20 @@ onMounted(() => { const featuredPagination = { endpoint: 'channels/featured' as const, noPaging: true, -}; +} satisfies Paging; const favoritesPagination = { endpoint: 'channels/my-favorites' as const, limit: 100, noPaging: true, -}; +} satisfies Paging; const followingPagination = { endpoint: 'channels/followed' as const, limit: 10, -}; +} satisfies Paging; const ownedPagination = { endpoint: 'channels/owned' as const, limit: 10, -}; +} satisfies Paging; async function search() { const query = searchQuery.value.toString().trim(); diff --git a/packages/frontend/src/pages/custom-emojis-manager.vue b/packages/frontend/src/pages/custom-emojis-manager.vue index bc2a268f34e2003c03751ab690a6bcbd203c0b80..e70d6143a48a08030814706bb158133956bf1de3 100644 --- a/packages/frontend/src/pages/custom-emojis-manager.vue +++ b/packages/frontend/src/pages/custom-emojis-manager.vue @@ -77,7 +77,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed, defineAsyncComponent, ref, shallowRef } from 'vue'; import MkButton from '@/components/MkButton.vue'; import MkInput from '@/components/MkInput.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkSwitch from '@/components/MkSwitch.vue'; import FormSplit from '@/components/form/split.vue'; import { selectFile } from '@/scripts/select-file.js'; @@ -100,7 +100,7 @@ const pagination = { params: computed(() => ({ query: (query.value && query.value !== '') ? query.value : null, })), -}; +} satisfies Paging; const remotePagination = { endpoint: 'admin/emoji/list-remote' as const, @@ -109,7 +109,7 @@ const remotePagination = { query: (queryRemote.value && queryRemote.value !== '') ? queryRemote.value : null, host: (host.value && host.value !== '') ? host.value : null, })), -}; +} satisfies Paging; const selectAll = () => { if (selectedEmojis.value.length > 0) { diff --git a/packages/frontend/src/pages/favorites.vue b/packages/frontend/src/pages/favorites.vue index 10f4a96a98fe731ccd129b373827635d3e052913..256dfcbc8809e101719ea7e02c547b89d32b2dab 100644 --- a/packages/frontend/src/pages/favorites.vue +++ b/packages/frontend/src/pages/favorites.vue @@ -26,7 +26,7 @@ SPDX-License-Identifier: AGPL-3.0-only </template> <script lang="ts" setup> -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkNote from '@/components/MkNote.vue'; import MkDateSeparatedList from '@/components/MkDateSeparatedList.vue'; import { i18n } from '@/i18n.js'; @@ -36,7 +36,7 @@ import { infoImageUrl } from '@/instance.js'; const pagination = { endpoint: 'i/favorites' as const, limit: 10, -}; +} satisfies Paging; definePageMetadata({ title: i18n.ts.favorites, diff --git a/packages/frontend/src/pages/flash/flash-index.vue b/packages/frontend/src/pages/flash/flash-index.vue index 2b9346fcac20a4287d1bbc7eabc8ee5aa90e3cb0..e4e43b28285499394a0e29e3c6ae7923225b1b60 100644 --- a/packages/frontend/src/pages/flash/flash-index.vue +++ b/packages/frontend/src/pages/flash/flash-index.vue @@ -40,7 +40,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { computed, ref } from 'vue'; import MkFlashPreview from '@/components/MkFlashPreview.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkButton from '@/components/MkButton.vue'; import { useRouter } from '@/router.js'; import { i18n } from '@/i18n.js'; @@ -53,15 +53,15 @@ const tab = ref('featured'); const featuredFlashsPagination = { endpoint: 'flash/featured' as const, noPaging: true, -}; +} satisfies Paging; const myFlashsPagination = { endpoint: 'flash/my' as const, limit: 5, -}; +} satisfies Paging; const likedFlashsPagination = { endpoint: 'flash/my-likes' as const, limit: 5, -}; +} satisfies Paging; function create() { router.push('/play/new'); diff --git a/packages/frontend/src/pages/follow-requests.vue b/packages/frontend/src/pages/follow-requests.vue index d7506642212bf761e234269046ee05ee53b72d91..62c185df9931445b40f191c013dc43ffb381d10a 100644 --- a/packages/frontend/src/pages/follow-requests.vue +++ b/packages/frontend/src/pages/follow-requests.vue @@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { shallowRef, computed } from 'vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkButton from '@/components/MkButton.vue'; import { userPage, acct } from '@/filters/user.js'; import * as os from '@/os.js'; @@ -51,7 +51,7 @@ const paginationComponent = shallowRef<InstanceType<typeof MkPagination>>(); const pagination = { endpoint: 'following/requests/list' as const, limit: 10, -}; +} satisfies Paging; function accept(user) { os.api('following/requests/accept', { userId: user.id }).then(() => { diff --git a/packages/frontend/src/pages/gallery/index.vue b/packages/frontend/src/pages/gallery/index.vue index 936d9b839307b6eb2ec935cb55192f46cc37a3a8..06896d05caf681aa1675f0ea101ed662fc122562 100644 --- a/packages/frontend/src/pages/gallery/index.vue +++ b/packages/frontend/src/pages/gallery/index.vue @@ -49,7 +49,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { watch, ref, computed } from 'vue'; import MkFoldableSection from '@/components/MkFoldableSection.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkGalleryPostPreview from '@/components/MkGalleryPostPreview.vue'; import { definePageMetadata } from '@/scripts/page-metadata.js'; import { i18n } from '@/i18n.js'; @@ -68,19 +68,19 @@ const tagsRef = ref(); const recentPostsPagination = { endpoint: 'gallery/posts' as const, limit: 6, -}; +} satisfies Paging; const popularPostsPagination = { endpoint: 'gallery/featured' as const, noPaging: true, -}; +} satisfies Paging; const myPostsPagination = { endpoint: 'i/gallery/posts' as const, limit: 5, -}; +} satisfies Paging; const likedPostsPagination = { endpoint: 'i/gallery/likes' as const, limit: 5, -}; +} satisfies Paging; const tagUsersPagination = computed(() => ({ endpoint: 'hashtags/users' as const, @@ -90,7 +90,7 @@ const tagUsersPagination = computed(() => ({ origin: 'combined', sort: '+follower', }, -})); +} satisfies Paging)); watch(() => props.tag, () => { if (tagsRef.value) tagsRef.value.tags.toggleContent(props.tag == null); diff --git a/packages/frontend/src/pages/gallery/post.vue b/packages/frontend/src/pages/gallery/post.vue index 54a8790ef90f0310fe271796236bd02df0f40a17..5c3fbb0d568f36946e6d8d91aafb9055e2a95844 100644 --- a/packages/frontend/src/pages/gallery/post.vue +++ b/packages/frontend/src/pages/gallery/post.vue @@ -67,7 +67,7 @@ import * as Misskey from 'misskey-js'; import MkButton from '@/components/MkButton.vue'; import * as os from '@/os.js'; import MkContainer from '@/components/MkContainer.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkGalleryPostPreview from '@/components/MkGalleryPostPreview.vue'; import MkFollowButton from '@/components/MkFollowButton.vue'; import { url } from '@/config.js'; @@ -93,7 +93,7 @@ const otherPostsPagination = { params: computed(() => ({ userId: post.value.user.id, })), -}; +} satisfies Paging; function fetchPost() { post.value = null; diff --git a/packages/frontend/src/pages/instance-info.vue b/packages/frontend/src/pages/instance-info.vue index 683a31c36dbd7820463928f85d0ed5a6094d513f..87816a8552e8e147668bcc742353440dcca0a5f3 100644 --- a/packages/frontend/src/pages/instance-info.vue +++ b/packages/frontend/src/pages/instance-info.vue @@ -135,7 +135,7 @@ import { iAmModerator, iAmAdmin } from '@/account.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; import { i18n } from '@/i18n.js'; import MkUserCardMini from '@/components/MkUserCardMini.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import { getProxiedImageUrlNullable } from '@/scripts/media-proxy.js'; import { dateString } from '@/filters/date.js'; @@ -162,7 +162,7 @@ const usersPagination = { hostname: props.host, }, offsetMode: true, -}; +} satisfies Paging; async function fetch(): Promise<void> { if (iAmAdmin) { diff --git a/packages/frontend/src/pages/invite.vue b/packages/frontend/src/pages/invite.vue index 6ac78a206836f1adcc23435d2b497eb4e0acf76b..390f98ec32b87c7945702ac9a5e30999b105f075 100644 --- a/packages/frontend/src/pages/invite.vue +++ b/packages/frontend/src/pages/invite.vue @@ -52,10 +52,10 @@ const currentInviteLimit = ref<null | number>(null); const inviteLimit = (($i != null && $i.policies.inviteLimit) || (($i == null && instance.policies.inviteLimit))) as number; const inviteLimitCycle = (($i != null && $i.policies.inviteLimitCycle) || ($i == null && instance.policies.inviteLimitCycle)) as number; -const pagination: Paging = { +const pagination = { endpoint: 'invite/list' as const, limit: 10, -}; +} satisfies Paging; const resetCycle = computed<null | string>(() => { if (!inviteLimitCycle) return null; diff --git a/packages/frontend/src/pages/my-clips/index.vue b/packages/frontend/src/pages/my-clips/index.vue index d787e53bb0a5fed4dca6febdd483257e4d8857bb..ef6d2ef43a0eed431364577e58498e795aacfa49 100644 --- a/packages/frontend/src/pages/my-clips/index.vue +++ b/packages/frontend/src/pages/my-clips/index.vue @@ -28,7 +28,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { watch, ref, shallowRef, computed } from 'vue'; import * as Misskey from 'misskey-js'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkButton from '@/components/MkButton.vue'; import MkClipPreview from '@/components/MkClipPreview.vue'; import * as os from '@/os.js'; @@ -40,7 +40,7 @@ const pagination = { endpoint: 'clips/list' as const, noPaging: true, limit: 10, -}; +} satisfies Paging; const tab = ref('my'); const favorites = ref<Misskey.entities.Clip[] | null>(null); diff --git a/packages/frontend/src/pages/my-lists/list.vue b/packages/frontend/src/pages/my-lists/list.vue index df9cdb0fce94889dcfaacbc11f3ea6fae8eb8668..02dd1be47770f71c46a6c485148fa70a0bf14fa2 100644 --- a/packages/frontend/src/pages/my-lists/list.vue +++ b/packages/frontend/src/pages/my-lists/list.vue @@ -68,7 +68,7 @@ import MkInput from '@/components/MkInput.vue'; import { userListsCache } from '@/cache.js'; import { $i } from '@/account.js'; import { defaultStore } from '@/store.js'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; const { enableInfiniteScroll, @@ -88,7 +88,7 @@ const membershipsPagination = { params: computed(() => ({ listId: props.listId, })), -}; +} satisfies Paging; function fetchList() { os.api('users/lists/show', { diff --git a/packages/frontend/src/pages/page.vue b/packages/frontend/src/pages/page.vue index 6b06da9a2481827bc8c76234cdca2c8c2b1bb42c..0154724aecb01350d2061e4d9ced16f8ea44e063 100644 --- a/packages/frontend/src/pages/page.vue +++ b/packages/frontend/src/pages/page.vue @@ -85,7 +85,7 @@ import { url } from '@/config.js'; import MkMediaImage from '@/components/MkMediaImage.vue'; import MkFollowButton from '@/components/MkFollowButton.vue'; import MkContainer from '@/components/MkContainer.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkPagePreview from '@/components/MkPagePreview.vue'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; @@ -108,7 +108,7 @@ const otherPostsPagination = { params: computed(() => ({ userId: page.value.user.id, })), -}; +} satisfies Paging; const path = computed(() => props.username + '/' + props.pageName); function fetchPage() { diff --git a/packages/frontend/src/pages/pages.vue b/packages/frontend/src/pages/pages.vue index a7ca433ed3332e4b40ba3f0e3db85e0982b53670..ea77913b7f9ef0ad0785efa78b5071c0a5a3ab54 100644 --- a/packages/frontend/src/pages/pages.vue +++ b/packages/frontend/src/pages/pages.vue @@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { computed, ref } from 'vue'; import MkPagePreview from '@/components/MkPagePreview.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkButton from '@/components/MkButton.vue'; import { useRouter } from '@/router.js'; import { i18n } from '@/i18n.js'; @@ -51,15 +51,15 @@ const tab = ref('featured'); const featuredPagesPagination = { endpoint: 'pages/featured' as const, noPaging: true, -}; +} satisfies Paging; const myPagesPagination = { endpoint: 'i/pages' as const, limit: 5, -}; +} satisfies Paging; const likedPagesPagination = { endpoint: 'i/page-likes' as const, limit: 5, -}; +} satisfies Paging; function create() { router.push('/pages/new'); diff --git a/packages/frontend/src/pages/settings/apps.vue b/packages/frontend/src/pages/settings/apps.vue index f492dc6d3140a0570a5c7a8707c58364e51d8552..a0f195b5a02059417bba3ca9d724c7a51dc0545e 100644 --- a/packages/frontend/src/pages/settings/apps.vue +++ b/packages/frontend/src/pages/settings/apps.vue @@ -46,7 +46,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { ref, computed } from 'vue'; -import FormPagination from '@/components/MkPagination.vue'; +import FormPagination, { Paging } from '@/components/MkPagination.vue'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; @@ -63,7 +63,7 @@ const pagination = { params: { sort: '+lastUsedAt', }, -}; +} satisfies Paging; function revoke(token) { os.api('i/revoke-token', { tokenId: token.id }).then(() => { diff --git a/packages/frontend/src/pages/settings/drive-cleaner.vue b/packages/frontend/src/pages/settings/drive-cleaner.vue index 601479b73c451fd0036da40934ec78d7dddff1b2..012c682d060f587b1cd0f30f233129edce0a667a 100644 --- a/packages/frontend/src/pages/settings/drive-cleaner.vue +++ b/packages/frontend/src/pages/settings/drive-cleaner.vue @@ -51,7 +51,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed, ref, watch } from 'vue'; import tinycolor from 'tinycolor2'; import * as os from '@/os.js'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkDriveFileThumbnail from '@/components/MkDriveFileThumbnail.vue'; import { i18n } from '@/i18n.js'; import bytes from '@/filters/bytes.js'; @@ -64,7 +64,7 @@ const pagination = { endpoint: 'drive/files' as const, limit: 10, params: computed(() => ({ sort: sortMode.value })), -}; +} satisfies Paging; const sortOptions = [ { value: 'sizeDesc', displayName: i18n.ts._drivecleaner.orderBySizeDesc }, diff --git a/packages/frontend/src/pages/settings/mute-block.vue b/packages/frontend/src/pages/settings/mute-block.vue index a996a03cced299fd38e2a1e00493670c82766b61..d7bfb0c4319e569d49678b62245d1f47c0e7fdde 100644 --- a/packages/frontend/src/pages/settings/mute-block.vue +++ b/packages/frontend/src/pages/settings/mute-block.vue @@ -129,7 +129,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { ref, computed } from 'vue'; import XInstanceMute from './mute-block.instance-mute.vue'; import XWordMute from './mute-block.word-mute.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import { userPage } from '@/filters/user.js'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; @@ -142,17 +142,17 @@ import MkFolder from '@/components/MkFolder.vue'; const renoteMutingPagination = { endpoint: 'renote-mute/list' as const, limit: 10, -}; +} satisfies Paging; const mutingPagination = { endpoint: 'mute/list' as const, limit: 10, -}; +} satisfies Paging; const blockingPagination = { endpoint: 'blocking/list' as const, limit: 10, -}; +} satisfies Paging; const expandedRenoteMuteItems = ref([]); const expandedMuteItems = ref([]); diff --git a/packages/frontend/src/pages/settings/security.vue b/packages/frontend/src/pages/settings/security.vue index 9ae479e6e4c5a3610069dbb4b884410548219616..7fbcb2c8afe227bbb54704d2e2e30d02031c8561 100644 --- a/packages/frontend/src/pages/settings/security.vue +++ b/packages/frontend/src/pages/settings/security.vue @@ -45,7 +45,7 @@ import X2fa from './2fa.vue'; import FormSection from '@/components/form/section.vue'; import FormSlot from '@/components/form/slot.vue'; import MkButton from '@/components/MkButton.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; @@ -53,7 +53,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js'; const pagination = { endpoint: 'i/signin-history' as const, limit: 5, -}; +} satisfies Paging; async function change() { const { canceled: canceled2, result: newPassword } = await os.inputText({ diff --git a/packages/frontend/src/pages/settings/webhook.vue b/packages/frontend/src/pages/settings/webhook.vue index c391458274ac25bcf7e0a2052e4ba382568f5ffc..da5152032334dd85be38daa3f7d42abdb84c4c0a 100644 --- a/packages/frontend/src/pages/settings/webhook.vue +++ b/packages/frontend/src/pages/settings/webhook.vue @@ -34,7 +34,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { computed } from 'vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import FormSection from '@/components/form/section.vue'; import FormLink from '@/components/form/link.vue'; import { definePageMetadata } from '@/scripts/page-metadata.js'; @@ -44,7 +44,7 @@ const pagination = { endpoint: 'i/webhooks/list' as const, limit: 100, noPaging: true, -}; +} satisfies Paging; const headerActions = computed(() => []); diff --git a/packages/frontend/src/pages/user/clips.vue b/packages/frontend/src/pages/user/clips.vue index eaae4725165fb33dceae5f28221676e62d0b9d7f..da17975fdf580a5dc8a13d12205520484665b492 100644 --- a/packages/frontend/src/pages/user/clips.vue +++ b/packages/frontend/src/pages/user/clips.vue @@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { computed } from 'vue'; import * as Misskey from 'misskey-js'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; const props = defineProps<{ user: Misskey.entities.User; @@ -31,7 +31,7 @@ const pagination = { params: computed(() => ({ userId: props.user.id, })), -}; +} satisfies Paging; </script> <style lang="scss" module> diff --git a/packages/frontend/src/pages/user/flashs.vue b/packages/frontend/src/pages/user/flashs.vue index 5e93a0b04cc99b859f4295b8945a70abf3fa25f8..267b1a2b8709c7df3ea7fa23c1512030c622d850 100644 --- a/packages/frontend/src/pages/user/flashs.vue +++ b/packages/frontend/src/pages/user/flashs.vue @@ -15,7 +15,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed } from 'vue'; import * as Misskey from 'misskey-js'; import MkFlashPreview from '@/components/MkFlashPreview.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; const props = defineProps<{ user: Misskey.entities.User; @@ -27,5 +27,5 @@ const pagination = { params: computed(() => ({ userId: props.user.id, })), -}; +} satisfies Paging; </script> diff --git a/packages/frontend/src/pages/user/follow-list.vue b/packages/frontend/src/pages/user/follow-list.vue index 19b729035352ec57753ba3ce3d4772bea7728f64..7c0cb72067f62e598b2586629c8e5d89e89ddda3 100644 --- a/packages/frontend/src/pages/user/follow-list.vue +++ b/packages/frontend/src/pages/user/follow-list.vue @@ -17,7 +17,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed } from 'vue'; import * as Misskey from 'misskey-js'; import MkUserInfo from '@/components/MkUserInfo.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; const props = defineProps<{ user: Misskey.entities.User; @@ -30,7 +30,7 @@ const followingPagination = { params: computed(() => ({ userId: props.user.id, })), -}; +} satisfies Paging; const followersPagination = { endpoint: 'users/followers' as const, @@ -38,7 +38,7 @@ const followersPagination = { params: computed(() => ({ userId: props.user.id, })), -}; +} satisfies Paging; </script> <style lang="scss" module> diff --git a/packages/frontend/src/pages/user/gallery.vue b/packages/frontend/src/pages/user/gallery.vue index 0d806100d99e140e3f9d79f90b4dab22bbf07385..f7ec85096516f08e0eefce3ab8f0698cf21cee37 100644 --- a/packages/frontend/src/pages/user/gallery.vue +++ b/packages/frontend/src/pages/user/gallery.vue @@ -17,7 +17,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed } from 'vue'; import * as Misskey from 'misskey-js'; import MkGalleryPostPreview from '@/components/MkGalleryPostPreview.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; const props = withDefaults(defineProps<{ user: Misskey.entities.User; @@ -30,7 +30,7 @@ const pagination = { params: computed(() => ({ userId: props.user.id, })), -}; +} satisfies Paging; </script> <style lang="scss" module> diff --git a/packages/frontend/src/pages/user/lists.vue b/packages/frontend/src/pages/user/lists.vue index c58a8abdfb24736f946b53edd21dbd18c796066f..545cc3b691f47ed17f462beb6b0b153367b06217 100644 --- a/packages/frontend/src/pages/user/lists.vue +++ b/packages/frontend/src/pages/user/lists.vue @@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import {} from 'vue'; import * as Misskey from 'misskey-js'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkStickyContainer from '@/components/global/MkStickyContainer.vue'; import MkSpacer from '@/components/global/MkSpacer.vue'; import MkAvatars from '@/components/MkAvatars.vue'; @@ -37,7 +37,7 @@ const pagination = { params: { userId: props.user.id, }, -}; +} satisfies Paging; </script> <style lang="scss" module> diff --git a/packages/frontend/src/pages/user/pages.vue b/packages/frontend/src/pages/user/pages.vue index 94ec80d05ef06eb9f0619cf9a2bcd1deb10d7e36..03373c3dfef8217fbd62825d23292f968cf6bd40 100644 --- a/packages/frontend/src/pages/user/pages.vue +++ b/packages/frontend/src/pages/user/pages.vue @@ -15,7 +15,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed } from 'vue'; import * as Misskey from 'misskey-js'; import MkPagePreview from '@/components/MkPagePreview.vue'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; const props = defineProps<{ user: Misskey.entities.User; @@ -27,5 +27,5 @@ const pagination = { params: computed(() => ({ userId: props.user.id, })), -}; +} satisfies Paging; </script> diff --git a/packages/frontend/src/pages/user/reactions.vue b/packages/frontend/src/pages/user/reactions.vue index 916b6615d583b9ec62c42d6da18f3bdf184a34da..dea66c6a17ff970ba5a40de707ebe4071c27b59b 100644 --- a/packages/frontend/src/pages/user/reactions.vue +++ b/packages/frontend/src/pages/user/reactions.vue @@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { computed } from 'vue'; import * as Misskey from 'misskey-js'; -import MkPagination from '@/components/MkPagination.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; import MkNote from '@/components/MkNote.vue'; import MkReactionIcon from '@/components/MkReactionIcon.vue'; @@ -35,7 +35,7 @@ const pagination = { params: computed(() => ({ userId: props.user.id, })), -}; +} satisfies Paging; </script> <style lang="scss" module>