From af40eb4d31014269d11fe8dc107ae8d34b4a23d9 Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sun, 15 Feb 2026 11:50:23 +0900 Subject: fix: user-tagページでユーザーが重複して読み込まれるのを修正 (#17163) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: user-tagをページネーションに対応させる * update changelog --- CHANGELOG.md | 1 + packages/backend/src/server/api/endpoints/hashtags/users.ts | 6 +++++- packages/frontend/src/pages/user-tag.vue | 1 + packages/misskey-js/src/autogen/types.ts | 2 ++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e519d581ad..5c40b0eeff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Enhance: 「もうすぐ誕生日のユーザー」ウィジェットで、誕生日が至近のユーザーも表示できるように (Cherry-picked from https://github.com/MisskeyIO/misskey) - 「今日誕生日のユーザー」は「もうすぐ誕生日のユーザー」に名称変更されました +- Fix: ユーザーハッシュタグページでユーザーの読み込みが重複する問題を修正 - 依存関係の更新 ### Client diff --git a/packages/backend/src/server/api/endpoints/hashtags/users.ts b/packages/backend/src/server/api/endpoints/hashtags/users.ts index 30f0c1b0c8..7b2c137bd4 100644 --- a/packages/backend/src/server/api/endpoints/hashtags/users.ts +++ b/packages/backend/src/server/api/endpoints/hashtags/users.ts @@ -32,6 +32,7 @@ export const paramDef = { properties: { tag: { type: 'string' }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, + offset: { type: 'integer', default: 0 }, sort: { type: 'string', enum: ['+follower', '-follower', '+createdAt', '-createdAt', '+updatedAt', '-updatedAt'] }, state: { type: 'string', enum: ['all', 'alive'], default: 'all' }, origin: { type: 'string', enum: ['combined', 'local', 'remote'], default: 'local' }, @@ -74,7 +75,10 @@ export default class extends Endpoint { // eslint- case '-updatedAt': query.orderBy('user.updatedAt', 'ASC'); break; } - const users = await query.limit(ps.limit).getMany(); + const users = await query + .limit(ps.limit) + .offset(ps.offset) + .getMany(); return await this.userEntityService.packMany(users, me, { schema: 'UserDetailed' }); }); diff --git a/packages/frontend/src/pages/user-tag.vue b/packages/frontend/src/pages/user-tag.vue index ec4c854381..75519f2850 100644 --- a/packages/frontend/src/pages/user-tag.vue +++ b/packages/frontend/src/pages/user-tag.vue @@ -25,6 +25,7 @@ const props = defineProps<{ const paginator = markRaw(new Paginator('hashtags/users', { limit: 30, + offsetMode: true, computedParams: computed(() => ({ tag: props.tag, origin: 'combined', diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts index 3aecc765d9..5b6da957f7 100644 --- a/packages/misskey-js/src/autogen/types.ts +++ b/packages/misskey-js/src/autogen/types.ts @@ -24020,6 +24020,8 @@ export interface operations { tag: string; /** @default 10 */ limit?: number; + /** @default 0 */ + offset?: number; /** @enum {string} */ sort: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt'; /** -- cgit v1.2.3-freya