From 5b4115e21a6822a434a9bfbbd53f22b3ca961239 Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sat, 13 Sep 2025 08:33:14 +0900 Subject: refactor(frontend): フロントエンドの型エラー解消(途中まで) (#16539) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(frontend): FormLinkをボタンとして使用した際にエラーが出る問題を修正 * refactor(frontend): フロントエンドの型エラー解消 * remove unused ts-expect-error * migrate * remove unrelated changes * fix lint * more type fixes --- packages/frontend/src/components/MkAvatars.vue | 2 +- packages/frontend/src/components/MkPostForm.vue | 6 +- .../components/MkPushNotificationAllowButton.vue | 9 ++- packages/frontend/src/components/MkRolePreview.vue | 6 +- packages/frontend/src/components/MkUserPopup.vue | 5 +- packages/frontend/src/components/form/link.vue | 55 +++++++++++-------- .../src/components/global/PageWithHeader.vue | 8 +-- packages/frontend/src/events.ts | 2 +- packages/frontend/src/lib/pizzax.ts | 2 +- packages/frontend/src/os.ts | 4 +- packages/frontend/src/pages/about.emojis.vue | 40 +++----------- packages/frontend/src/pages/about.federation.vue | 2 +- packages/frontend/src/pages/admin-user.vue | 5 +- .../pages/admin/custom-emojis-manager.register.vue | 4 +- .../admin/federation-job-queue.chart.chart.vue | 8 ++- packages/frontend/src/pages/admin/job-queue.vue | 2 + .../src/pages/admin/overview.active-users.vue | 2 +- .../src/pages/admin/overview.federation.vue | 8 +-- .../frontend/src/pages/admin/overview.heatmap.vue | 3 +- packages/frontend/src/pages/admin/overview.pie.vue | 13 +++-- .../src/pages/admin/overview.queue.chart.vue | 12 ++-- .../frontend/src/pages/admin/overview.queue.vue | 18 +++--- .../frontend/src/pages/admin/overview.stats.vue | 15 ++--- packages/frontend/src/pages/admin/overview.vue | 2 +- packages/frontend/src/pages/admin/roles.editor.vue | 1 - packages/frontend/src/pages/admin/roles.role.vue | 2 +- packages/frontend/src/pages/admin/roles.vue | 7 +-- packages/frontend/src/pages/gallery/post.vue | 19 ++++--- packages/frontend/src/pages/list.vue | 13 +++-- .../pages/page-editor/els/page-editor.el.note.vue | 1 + .../page-editor/els/page-editor.el.section.vue | 2 +- .../pages/page-editor/els/page-editor.el.text.vue | 2 + .../frontend/src/pages/page-editor/page-editor.vue | 9 ++- packages/frontend/src/pages/reversi/game.board.vue | 2 +- .../frontend/src/pages/reversi/game.setting.vue | 2 +- packages/frontend/src/pages/reversi/game.vue | 2 +- packages/frontend/src/pages/settings/2fa.vue | 2 + packages/frontend/src/pages/settings/privacy.vue | 64 +++++++++++++++------- .../frontend/src/pages/settings/sounds.sound.vue | 14 ++--- packages/frontend/src/pages/settings/sounds.vue | 2 +- packages/frontend/src/pages/share.vue | 3 +- packages/frontend/src/pages/user/lists.vue | 2 +- packages/frontend/src/plugin.ts | 44 ++++++++------- packages/frontend/src/pref-migrate.ts | 21 +++++-- packages/frontend/src/preferences/def.ts | 10 +++- packages/frontend/src/store.ts | 4 +- packages/frontend/src/utility/code-highlighter.ts | 2 +- packages/frontend/src/utility/form.ts | 4 +- packages/frontend/src/utility/get-user-menu.ts | 1 - 49 files changed, 253 insertions(+), 215 deletions(-) (limited to 'packages/frontend/src') diff --git a/packages/frontend/src/components/MkAvatars.vue b/packages/frontend/src/components/MkAvatars.vue index 1c44ed60d8..4bd6c62a5f 100644 --- a/packages/frontend/src/components/MkAvatars.vue +++ b/packages/frontend/src/components/MkAvatars.vue @@ -29,6 +29,6 @@ const users = ref([]); onMounted(async () => { users.value = await misskeyApi('users/show', { userIds: props.userIds, - }) as unknown as Misskey.entities.UserLite[]; + }); }); diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 56683b8f8c..a3ff89fc4d 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -823,17 +823,15 @@ async function saveServerDraft(clearLocal = false) { return await os.apiWithDialog(serverDraftId.value == null ? 'notes/drafts/create' : 'notes/drafts/update', { ...(serverDraftId.value == null ? {} : { draftId: serverDraftId.value }), text: text.value, - useCw: useCw.value, - cw: cw.value, + cw: useCw.value ? cw.value || null : null, visibility: visibility.value, localOnly: localOnly.value, hashtag: hashtags.value, ...(files.value.length > 0 ? { fileIds: files.value.map(f => f.id) } : {}), poll: poll.value, ...(visibleUsers.value.length > 0 ? { visibleUserIds: visibleUsers.value.map(x => x.id) } : {}), - renoteId: renoteTargetNote.value ? renoteTargetNote.value.id : undefined, + renoteId: renoteTargetNote.value ? renoteTargetNote.value.id : quoteId.value ? quoteId.value : undefined, replyId: replyTargetNote.value ? replyTargetNote.value.id : undefined, - quoteId: quoteId.value, channelId: targetChannel.value ? targetChannel.value.id : undefined, reactionAcceptance: reactionAcceptance.value, }).then(() => { diff --git a/packages/frontend/src/components/MkPushNotificationAllowButton.vue b/packages/frontend/src/components/MkPushNotificationAllowButton.vue index 9c37eb5e72..697346020c 100644 --- a/packages/frontend/src/components/MkPushNotificationAllowButton.vue +++ b/packages/frontend/src/components/MkPushNotificationAllowButton.vue @@ -90,7 +90,7 @@ function subscribe() { publickey: encode(subscription.getKey('p256dh')), }); }, async err => { // When subscribe failed - // 通知が許可されていなかったとき + // 通知が許可されていなかったとき if (err?.name === 'NotAllowedError') { console.info('User denied the notification permission request.'); return; @@ -114,14 +114,13 @@ async function unsubscribe() { if ($i && accounts.length >= 2) { apiWithDialog('sw/unregister', { - i: $i.token, endpoint, - }); + }, $i.token); } else { pushSubscription.value.unsubscribe(); apiWithDialog('sw/unregister', { endpoint, - }); + }, null); pushSubscription.value = null; } } @@ -134,7 +133,7 @@ function encode(buffer: ArrayBuffer | null) { * Convert the URL safe base64 string to a Uint8Array * @param base64String base64 string */ -function urlBase64ToUint8Array(base64String: string): Uint8Array { +function urlBase64ToUint8Array(base64String: string): BufferSource { const padding = '='.repeat((4 - base64String.length % 4) % 4); const base64 = (base64String + padding) .replace(/-/g, '+') diff --git a/packages/frontend/src/components/MkRolePreview.vue b/packages/frontend/src/components/MkRolePreview.vue index 15149b3f0c..8e5cbde8c3 100644 --- a/packages/frontend/src/components/MkRolePreview.vue +++ b/packages/frontend/src/components/MkRolePreview.vue @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only {{ role.name }} -