From 2a14025c29081bd8080b4dec0823a7625a791950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Fri, 9 Jan 2026 12:21:08 +0900 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20popup=E3=81=AEemit=E5=9E=8B?= =?UTF-8?q?=E3=81=8C=E6=AD=A3=E3=81=97=E3=81=8F=E5=88=A9=E7=94=A8=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=20(#16826)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(frontend): popupのemit型が正しく利用できるように修正 * fix: revert unnecessary code (for testing purpose) * fix lint * fix type errors * fix types * add comment * fix * fix * fix: OverloadToUnionの仕組みを変更 * add comments, clean up * fix lint * fix types * clean up [ci skip] * fix * add comments [ci skip] --- .../backend/src/core/GlobalEventService.ts | 6 +- .../src/core/entities/EmojiEntityService.ts | 4 +- .../server/api/endpoints/admin/emoji/list.ts | 34 +---- .../src/components/MkAnnouncementDialog.vue | 6 +- .../src/components/MkCropperDialog.vue | 14 +- packages/frontend/src/components/MkDialog.vue | 11 +- .../src/components/MkDrive.folder.vue | 10 +- packages/frontend/src/components/MkDrive.vue | 10 +- .../src/components/MkImgPreviewDialog.vue | 5 + .../components/MkNotificationSelectWindow.vue | 2 +- .../frontend/src/components/MkUpdated.vue | 6 +- .../src/components/MkYouTubePlayer.vue | 6 +- packages/frontend/src/os.ts | 124 ++++++++---------- .../src/pages/custom-emojis-manager.vue | 15 ++- .../frontend/src/pages/drive.file.info.vue | 5 +- .../frontend/src/pages/emoji-edit-dialog.vue | 24 +++- .../frontend/src/pages/settings/drive.vue | 5 +- .../frontend/src/types/overload-to-union.ts | 31 +++++ packages/frontend/src/utility/autocomplete.ts | 3 +- packages/frontend/src/utility/drive.ts | 16 ++- .../src/utility/get-drive-file-menu.ts | 5 +- .../frontend/src/widgets/WidgetSlideshow.vue | 6 +- packages/frontend/src/widgets/widget.ts | 4 +- packages/misskey-js/src/autogen/types.ts | 11 +- 24 files changed, 196 insertions(+), 167 deletions(-) create mode 100644 packages/frontend/src/types/overload-to-union.ts diff --git a/packages/backend/src/core/GlobalEventService.ts b/packages/backend/src/core/GlobalEventService.ts index f4c747b139..da5982abf6 100644 --- a/packages/backend/src/core/GlobalEventService.ts +++ b/packages/backend/src/core/GlobalEventService.ts @@ -38,11 +38,7 @@ export interface BroadcastTypes { emojis: Packed<'EmojiDetailed'>[]; }; emojiDeleted: { - emojis: { - id?: string; - name: string; - [other: string]: any; - }[]; + emojis: Packed<'EmojiDetailed'>[]; }; announcementCreated: { announcement: Packed<'Announcement'>; diff --git a/packages/backend/src/core/entities/EmojiEntityService.ts b/packages/backend/src/core/entities/EmojiEntityService.ts index 490d3f2511..309de3b08f 100644 --- a/packages/backend/src/core/entities/EmojiEntityService.ts +++ b/packages/backend/src/core/entities/EmojiEntityService.ts @@ -41,7 +41,7 @@ export class EmojiEntityService { @bindThis public packSimpleMany( - emojis: any[], + emojis: (MiEmoji['id'] | MiEmoji)[], ) { return Promise.all(emojis.map(x => this.packSimple(x))); } @@ -69,7 +69,7 @@ export class EmojiEntityService { @bindThis public packDetailedMany( - emojis: any[], + emojis: (MiEmoji['id'] | MiEmoji)[], ): Promise[]> { return Promise.all(emojis.map(x => this.packDetailed(x))); } diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts index 34d200455e..658367409c 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts @@ -24,39 +24,7 @@ export const meta = { optional: false, nullable: false, items: { type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - aliases: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - category: { - type: 'string', - optional: false, nullable: true, - }, - host: { - type: 'string', - optional: false, nullable: true, - description: 'The local host is represented with `null`. The field exists for compatibility with other API endpoints that return files.', - }, - url: { - type: 'string', - optional: false, nullable: false, - }, - }, + ref: 'EmojiDetailed', }, }, } as const; diff --git a/packages/frontend/src/components/MkAnnouncementDialog.vue b/packages/frontend/src/components/MkAnnouncementDialog.vue index 81c92bfb5c..da0f618e95 100644 --- a/packages/frontend/src/components/MkAnnouncementDialog.vue +++ b/packages/frontend/src/components/MkAnnouncementDialog.vue @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only --> - +