From 2a14025c29081bd8080b4dec0823a7625a791950 Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Fri, 9 Jan 2026 12:21:08 +0900 Subject: fix(frontend): popupのemit型が正しく利用できるように修正 (#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] --- packages/backend/src/core/GlobalEventService.ts | 6 +- .../src/core/entities/EmojiEntityService.ts | 4 +- .../src/server/api/endpoints/admin/emoji/list.ts | 34 +----- .../src/components/MkAnnouncementDialog.vue | 6 +- .../frontend/src/components/MkCropperDialog.vue | 14 ++- packages/frontend/src/components/MkDialog.vue | 11 +- .../frontend/src/components/MkDrive.folder.vue | 10 +- packages/frontend/src/components/MkDrive.vue | 10 +- .../frontend/src/components/MkImgPreviewDialog.vue | 5 + .../src/components/MkNotificationSelectWindow.vue | 2 +- packages/frontend/src/components/MkUpdated.vue | 6 +- .../frontend/src/components/MkYouTubePlayer.vue | 6 +- packages/frontend/src/os.ts | 124 +++++++++------------ .../frontend/src/pages/custom-emojis-manager.vue | 15 ++- packages/frontend/src/pages/drive.file.info.vue | 5 +- packages/frontend/src/pages/emoji-edit-dialog.vue | 24 ++-- packages/frontend/src/pages/settings/drive.vue | 5 +- packages/frontend/src/types/overload-to-union.ts | 31 ++++++ packages/frontend/src/utility/autocomplete.ts | 3 +- packages/frontend/src/utility/drive.ts | 16 ++- .../frontend/src/utility/get-drive-file-menu.ts | 5 +- packages/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 (limited to 'packages') 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 --> - +