From 17d9aca5a7ec6149a8dbf0c1607c81ab188e7015 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: Thu, 31 Oct 2024 13:46:42 +0900 Subject: [PATCH 1/4] =?UTF-8?q?refactor(frontend):=20as=E3=81=A8any?= =?UTF-8?q?=E3=82=92=E3=81=99=E3=81=90=E3=81=AA=E3=81=8A=E3=81=9B=E3=82=8B?= =?UTF-8?q?=E7=AF=84=E5=9B=B2=E3=81=A7=E9=99=A4=E5=8E=BB=20(#14848)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor(frontend): できるだけanyを除去 * refactor * lint * fix * remove unused * Update packages/frontend/src/components/MkReactionsViewer.details.vue * Update packages/frontend/src/components/MkUsersTooltip.vue --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com> --- .../src/components/MkAntennaEditor.vue | 2 +- .../src/components/MkChannelPreview.vue | 3 +- packages/frontend/src/components/MkDialog.vue | 4 +-- packages/frontend/src/components/MkDrive.vue | 8 ++--- .../src/components/MkEmojiPicker.section.vue | 2 +- .../frontend/src/components/MkEmojiPicker.vue | 4 +-- .../src/components/MkExtensionInstaller.vue | 2 +- packages/frontend/src/components/MkInput.vue | 8 ++--- .../components/MkNotificationSelectWindow.vue | 2 +- .../src/components/MkObjectView.value.vue | 10 +++--- .../frontend/src/components/MkPageWindow.vue | 2 +- .../frontend/src/components/MkPopupMenu.vue | 2 +- .../frontend/src/components/MkPostForm.vue | 20 +++-------- .../src/components/MkPostFormAttaches.vue | 8 ++--- .../src/components/MkPostFormDialog.vue | 16 ++------- packages/frontend/src/components/MkRadio.vue | 8 ++--- .../components/MkReactionsViewer.details.vue | 3 +- .../frontend/src/components/MkSuperMenu.vue | 33 +++++++++++++++++-- .../frontend/src/components/MkUrlPreview.vue | 10 +++--- .../MkUserAnnouncementEditDialog.vue | 8 +++-- .../src/components/MkUsersTooltip.vue | 4 +-- packages/frontend/src/components/MkWindow.vue | 11 +++++-- .../frontend/src/components/form/suspense.vue | 6 ++-- .../frontend/src/components/global/MkMfm.ts | 4 +-- packages/frontend/src/nirax.ts | 12 ++++--- packages/frontend/src/os.ts | 23 ++++++------- packages/frontend/src/pages/admin/users.vue | 6 ++-- .../src/pages/custom-emojis-manager.vue | 26 +++++++-------- .../frontend/src/pages/emoji-edit-dialog.vue | 19 ++++++----- .../frontend/src/pages/follow-requests.vue | 4 +-- packages/frontend/src/pages/lookup.vue | 2 +- .../frontend/src/pages/my-clips/index.vue | 6 ++-- packages/frontend/src/pages/my-lists/list.vue | 4 +-- .../page-editor/els/page-editor.el.image.vue | 5 +-- .../page-editor/els/page-editor.el.note.vue | 13 +++++--- .../els/page-editor.el.section.vue | 12 +++---- .../page-editor/els/page-editor.el.text.vue | 5 +-- packages/frontend/src/pages/registry.keys.vue | 2 +- .../src/pages/reversi/game.setting.vue | 6 ++-- packages/frontend/src/pages/scratchpad.vue | 6 +++- .../src/pages/settings/2fa.qrdialog.vue | 7 ++-- .../frontend/src/pages/settings/accounts.vue | 2 +- packages/frontend/src/pages/settings/apps.vue | 3 +- .../settings/avatar-decoration.dialog.vue | 8 ++--- packages/frontend/src/pages/user/home.vue | 2 +- packages/frontend/src/router/definition.ts | 2 +- packages/frontend/src/router/main.ts | 8 ++--- .../frontend/src/scripts/check-word-mute.ts | 3 +- packages/frontend/src/scripts/form.ts | 16 ++++----- packages/frontend/src/scripts/misskey-api.ts | 6 ++-- packages/frontend/src/scripts/select-file.ts | 6 ++-- packages/frontend/src/scripts/shuffle.ts | 5 +-- packages/frontend/src/scripts/upload.ts | 8 ++--- packages/frontend/src/store.ts | 9 ++--- packages/frontend/src/types/post-form.ts | 22 +++++++++++++ .../frontend/src/widgets/WidgetPhotos.vue | 4 +-- 56 files changed, 250 insertions(+), 192 deletions(-) create mode 100644 packages/frontend/src/types/post-form.ts diff --git a/packages/frontend/src/components/MkAntennaEditor.vue b/packages/frontend/src/components/MkAntennaEditor.vue index 2386ba6fa..e622d57f1 100644 --- a/packages/frontend/src/components/MkAntennaEditor.vue +++ b/packages/frontend/src/components/MkAntennaEditor.vue @@ -160,7 +160,7 @@ async function deleteAntenna() { function addUser() { os.selectUser({ includeSelf: true }).then(user => { users.value = users.value.trim(); - users.value += '\n@' + Misskey.acct.toString(user as any); + users.value += '\n@' + Misskey.acct.toString(user); users.value = users.value.trim(); }); } diff --git a/packages/frontend/src/components/MkChannelPreview.vue b/packages/frontend/src/components/MkChannelPreview.vue index 99580df5e..c470042b7 100644 --- a/packages/frontend/src/components/MkChannelPreview.vue +++ b/packages/frontend/src/components/MkChannelPreview.vue @@ -47,11 +47,12 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue index 219950f13..8187d991e 100644 --- a/packages/frontend/src/components/MkEmojiPicker.vue +++ b/packages/frontend/src/components/MkEmojiPicker.vue @@ -409,7 +409,7 @@ function computeButtonTitle(ev: MouseEvent): void { elm.title = getEmojiName(emoji); } -function chosen(emoji: any, ev?: MouseEvent) { +function chosen(emoji: string | Misskey.entities.EmojiSimple | UnicodeEmojiDef, ev?: MouseEvent) { const el = ev && (ev.currentTarget ?? ev.target) as HTMLElement | null | undefined; if (el) { const rect = el.getBoundingClientRect(); @@ -426,7 +426,7 @@ function chosen(emoji: any, ev?: MouseEvent) { // 最近使った絵文字更新 if (!pinned.value?.includes(key)) { let recents = defaultStore.state.recentlyUsedEmojis; - recents = recents.filter((emoji: any) => emoji !== key); + recents = recents.filter((emoji) => emoji !== key); recents.unshift(key); defaultStore.set('recentlyUsedEmojis', recents.splice(0, 32)); } diff --git a/packages/frontend/src/components/MkExtensionInstaller.vue b/packages/frontend/src/components/MkExtensionInstaller.vue index b41604b2c..d59b20435 100644 --- a/packages/frontend/src/components/MkExtensionInstaller.vue +++ b/packages/frontend/src/components/MkExtensionInstaller.vue @@ -73,7 +73,7 @@ export type Extension = { author: string; description?: string; permissions?: string[]; - config?: Record; + config?: Record; }; } | { type: 'theme'; diff --git a/packages/frontend/src/components/MkInput.vue b/packages/frontend/src/components/MkInput.vue index e01ff86c5..08817fd6a 100644 --- a/packages/frontend/src/components/MkInput.vue +++ b/packages/frontend/src/components/MkInput.vue @@ -44,7 +44,7 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/components/MkPageWindow.vue b/packages/frontend/src/components/MkPageWindow.vue index 4777da284..02c84df44 100644 --- a/packages/frontend/src/components/MkPageWindow.vue +++ b/packages/frontend/src/components/MkPageWindow.vue @@ -58,7 +58,7 @@ const windowRouter = routerFactory(props.initialPath); const contents = shallowRef(null); const pageMetadata = ref(null); const windowEl = shallowRef>(); -const history = ref<{ path: string; key: any; }[]>([{ +const history = ref<{ path: string; key: string; }[]>([{ path: windowRouter.getCurrentPath(), key: windowRouter.getCurrentKey(), }]); diff --git a/packages/frontend/src/components/MkPopupMenu.vue b/packages/frontend/src/components/MkPopupMenu.vue index 26c251a8d..df664e49f 100644 --- a/packages/frontend/src/components/MkPopupMenu.vue +++ b/packages/frontend/src/components/MkPopupMenu.vue @@ -19,7 +19,7 @@ defineProps<{ items: MenuItem[]; align?: 'center' | string; width?: number; - src?: any; + src?: HTMLElement | null; returnFocusTo?: HTMLElement | null; }>(); diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index b6b80082d..f2fe04844 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -129,25 +129,13 @@ import { miLocalStorage } from '@/local-storage.js'; import { claimAchievement } from '@/scripts/achievements.js'; import { emojiPicker } from '@/scripts/emoji-picker.js'; import { mfmFunctionPicker } from '@/scripts/mfm-function-picker.js'; +import type { PostFormProps } from '@/types/post-form.js'; const $i = signinRequired(); const modal = inject('modal'); -const props = withDefaults(defineProps<{ - reply?: Misskey.entities.Note; - renote?: Misskey.entities.Note; - channel?: Misskey.entities.Channel; // TODO - mention?: Misskey.entities.User; - specified?: Misskey.entities.UserDetailed; - initialText?: string; - initialCw?: string; - initialVisibility?: (typeof Misskey.noteVisibilities)[number]; - initialFiles?: Misskey.entities.DriveFile[]; - initialLocalOnly?: boolean; - initialVisibleUsers?: Misskey.entities.UserDetailed[]; - initialNote?: Misskey.entities.Note; - instant?: boolean; +const props = withDefaults(defineProps { - if (typeof key !== 'string') return; + }, (key, value) => { + if (typeof key !== 'string' || typeof value !== 'string') return; if (key === 'text') { text.value = value; } if (key === 'cw') { useCw.value = value !== null; cw.value = value; } }); diff --git a/packages/frontend/src/components/MkPostFormAttaches.vue b/packages/frontend/src/components/MkPostFormAttaches.vue index ee7038df6..56e026aa3 100644 --- a/packages/frontend/src/components/MkPostFormAttaches.vue +++ b/packages/frontend/src/components/MkPostFormAttaches.vue @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only