refactor(frontend): os.select, MkSelectのitem指定をオブジェクトによる定義に統一し、型を狭める (#16475)

* 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>
This commit is contained in:
かっこかり
2025-09-13 21:00:33 +09:00
committed by GitHub
parent b7da6cad87
commit d4654dd7bd
64 changed files with 1171 additions and 765 deletions

View File

@@ -4,10 +4,11 @@
*/
import * as Misskey from 'misskey-js';
import type { OptionValue } from '@/components/MkSelect.vue';
export type EnumItem = string | {
label: string;
value: unknown;
value: OptionValue;
};
type Hidden = boolean | ((v: any) => boolean);

View File

@@ -37,15 +37,15 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: Router
const { canceled, result: period } = await os.select({
title: i18n.ts.mutePeriod,
items: [{
value: 'indefinitely', text: i18n.ts.indefinitely,
value: 'indefinitely', label: i18n.ts.indefinitely,
}, {
value: 'tenMinutes', text: i18n.ts.tenMinutes,
value: 'tenMinutes', label: i18n.ts.tenMinutes,
}, {
value: 'oneHour', text: i18n.ts.oneHour,
value: 'oneHour', label: i18n.ts.oneHour,
}, {
value: 'oneDay', text: i18n.ts.oneDay,
value: 'oneDay', label: i18n.ts.oneDay,
}, {
value: 'oneWeek', text: i18n.ts.oneWeek,
value: 'oneWeek', label: i18n.ts.oneWeek,
}],
default: 'indefinitely',
});
@@ -312,15 +312,15 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: Router
const { canceled, result: period } = await os.select({
title: i18n.ts.period + ': ' + r.name,
items: [{
value: 'indefinitely', text: i18n.ts.indefinitely,
value: 'indefinitely', label: i18n.ts.indefinitely,
}, {
value: 'oneHour', text: i18n.ts.oneHour,
value: 'oneHour', label: i18n.ts.oneHour,
}, {
value: 'oneDay', text: i18n.ts.oneDay,
value: 'oneDay', label: i18n.ts.oneDay,
}, {
value: 'oneWeek', text: i18n.ts.oneWeek,
value: 'oneWeek', label: i18n.ts.oneWeek,
}, {
value: 'oneMonth', text: i18n.ts.oneMonth,
value: 'oneMonth', label: i18n.ts.oneMonth,
}],
default: 'indefinitely',
});