From d4654dd7bd5bf1c7faa74ed89f592448c0076be8 Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sat, 13 Sep 2025 21:00:33 +0900 Subject: refactor(frontend): os.select, MkSelectのitem指定をオブジェクトによる定義に統一し、型を狭める (#16475) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor(frontend): MkSelectのitem指定をオブジェクトによる定義に統一 * fix * spdx * fix * fix os.select * fix lint * add comment * fix * fix: os.select対応漏れを修正 * fix * fix * fix: MkSelectのmodelに対する型チェックを厳格化 * fix * fix * fix * Update packages/frontend/src/components/MkEmbedCodeGenDialog.vue Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com> * fix * fix types * fix * fix * Update packages/frontend/src/pages/admin/roles.editor.vue Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com> * fix: MkSelectに直接配列を指定している場合に正常に型が解決されるように --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com> --- packages/frontend/src/pages/about.federation.vue | 89 ++++++++--------- packages/frontend/src/pages/admin-user.vue | 43 +++++--- .../src/pages/admin/RolesEditorFormula.vue | 51 +++++----- .../abuse-report/notification-recipient.editor.vue | 42 +++++--- .../admin/abuse-report/notification-recipient.vue | 18 +++- packages/frontend/src/pages/admin/abuses.vue | 52 +++++++--- packages/frontend/src/pages/admin/ads.vue | 26 +++-- .../frontend/src/pages/admin/announcements.vue | 18 +++- .../custom-emojis-manager.local.list.search.vue | 16 +-- .../pages/admin/custom-emojis-manager.register.vue | 16 +-- packages/frontend/src/pages/admin/federation.vue | 63 +++++++----- packages/frontend/src/pages/admin/files.vue | 18 +++- packages/frontend/src/pages/admin/invites.vue | 39 +++++--- packages/frontend/src/pages/admin/moderation.vue | 28 +++--- packages/frontend/src/pages/admin/modlog.vue | 16 ++- .../frontend/src/pages/admin/overview.heatmap.vue | 24 +++-- packages/frontend/src/pages/admin/roles.editor.vue | 36 ++++--- packages/frontend/src/pages/admin/roles.role.vue | 10 +- packages/frontend/src/pages/admin/roles.vue | 12 ++- packages/frontend/src/pages/admin/users.vue | 64 ++++++++---- .../src/pages/avatar-decoration-edit-dialog.vue | 8 +- packages/frontend/src/pages/debug.vue | 43 +++++--- packages/frontend/src/pages/drop-and-fusion.vue | 22 +++-- packages/frontend/src/pages/emoji-edit-dialog.vue | 8 +- packages/frontend/src/pages/flash/flash-edit.vue | 16 ++- packages/frontend/src/pages/instance-info.vue | 34 ++++--- packages/frontend/src/pages/page-editor/common.ts | 11 ++- .../frontend/src/pages/page-editor/page-editor.vue | 16 ++- .../frontend/src/pages/settings/drive-cleaner.vue | 20 ++-- .../frontend/src/pages/settings/emoji-palette.vue | 32 ++++-- packages/frontend/src/pages/settings/navbar.vue | 4 +- .../settings/notifications.notification-config.vue | 31 ++++-- .../frontend/src/pages/settings/preferences.vue | 87 ++++++++++------ packages/frontend/src/pages/settings/privacy.vue | 110 +++++++++++++-------- packages/frontend/src/pages/settings/profile.vue | 19 ++-- .../frontend/src/pages/settings/sounds.sound.vue | 15 ++- .../src/pages/settings/statusbar.statusbar.vue | 31 ++++-- .../frontend/src/pages/settings/theme.manage.vue | 28 ++++-- 38 files changed, 773 insertions(+), 443 deletions(-) (limited to 'packages/frontend/src/pages') diff --git a/packages/frontend/src/pages/about.federation.vue b/packages/frontend/src/pages/about.federation.vue index 568bf9fd1a..bbfb9a3b7c 100644 --- a/packages/frontend/src/pages/about.federation.vue +++ b/packages/frontend/src/pages/about.federation.vue @@ -11,56 +11,10 @@ SPDX-License-Identifier: AGPL-3.0-only - + - - - - - - - - - + @@ -85,11 +39,46 @@ import MkPagination from '@/components/MkPagination.vue'; import MkInstanceCardMini from '@/components/MkInstanceCardMini.vue'; import FormSplit from '@/components/form/split.vue'; import { i18n } from '@/i18n.js'; +import { useMkSelect } from '@/composables/use-mkselect.js'; import { Paginator } from '@/utility/paginator.js'; const host = ref(''); -const state = ref('federating'); -const sort = ref>('+pubSub'); +const { + model: state, + def: stateDef, +} = useMkSelect({ + items: [ + { label: i18n.ts.all, value: 'all' }, + { label: i18n.ts.federating, value: 'federating' }, + { label: i18n.ts.subscribing, value: 'subscribing' }, + { label: i18n.ts.publishing, value: 'publishing' }, + { label: i18n.ts.suspended, value: 'suspended' }, + { label: i18n.ts.silence, value: 'silenced' }, + { label: i18n.ts.blocked, value: 'blocked' }, + { label: i18n.ts.notResponding, value: 'notResponding' }, + ], + initialValue: 'federating', +}); +const { + model: sort, + def: sortDef, +} = useMkSelect({ + items: [ + { label: `${i18n.ts.pubSub} (${i18n.ts.descendingOrder})`, value: '+pubSub' }, + { label: `${i18n.ts.pubSub} (${i18n.ts.ascendingOrder})`, value: '-pubSub' }, + { label: `${i18n.ts.notes} (${i18n.ts.descendingOrder})`, value: '+notes' }, + { label: `${i18n.ts.notes} (${i18n.ts.ascendingOrder})`, value: '-notes' }, + { label: `${i18n.ts.users} (${i18n.ts.descendingOrder})`, value: '+users' }, + { label: `${i18n.ts.users} (${i18n.ts.ascendingOrder})`, value: '-users' }, + { label: `${i18n.ts.following} (${i18n.ts.descendingOrder})`, value: '+following' }, + { label: `${i18n.ts.following} (${i18n.ts.ascendingOrder})`, value: '-following' }, + { label: `${i18n.ts.followers} (${i18n.ts.descendingOrder})`, value: '+followers' }, + { label: `${i18n.ts.followers} (${i18n.ts.ascendingOrder})`, value: '-followers' }, + { label: `${i18n.ts.registeredAt} (${i18n.ts.descendingOrder})`, value: '+firstRetrievedAt' }, + { label: `${i18n.ts.registeredAt} (${i18n.ts.ascendingOrder})`, value: '-firstRetrievedAt' }, + ], + initialValue: '+pubSub', +}); const paginator = markRaw(new Paginator('federation/instances', { limit: 10, offsetMode: true, diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue index 86dfd38d81..24f2d0d5eb 100644 --- a/packages/frontend/src/pages/admin-user.vue +++ b/packages/frontend/src/pages/admin-user.vue @@ -153,17 +153,15 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.new }} - + - -