diff options
| author | anatawa12 <anatawa12@icloud.com> | 2024-05-27 20:54:53 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-27 20:54:53 +0900 |
| commit | 4579be0f5401001bcfc27c4d56133cc910f3f581 (patch) | |
| tree | e6ca129d8d22e5684250a380943bd431ff8c2f4d /packages/frontend/src/scripts | |
| parent | New Crowdin updates (#13860) (diff) | |
| download | sharkey-4579be0f5401001bcfc27c4d56133cc910f3f581.tar.gz sharkey-4579be0f5401001bcfc27c4d56133cc910f3f581.tar.bz2 sharkey-4579be0f5401001bcfc27c4d56133cc910f3f581.zip | |
新着ノートをサウンドで通知する機能をdeck UIに追加 (#13867)
* feat(deck-ui): implement note notification
* chore: remove notify in antenna
* docs(changelog): 新着ノートをサウンドで通知する機能をdeck UIに追加
* fix: type error in test
* lint: key order
* fix: remove notify column
* test: remove test for notify
* chore: make sound selectable
* fix: add license header
* fix: add license header again
* Unnecessary await
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
* ファイルを選択してください -> ファイルが選択されていません
* fix: i18n忘れ
* fix: i18n忘れ
* pleaseSelectFile > fileNotSelected
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/scripts')
| -rw-r--r-- | packages/frontend/src/scripts/form.ts | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/packages/frontend/src/scripts/form.ts b/packages/frontend/src/scripts/form.ts index b0db404f28..242a504c3b 100644 --- a/packages/frontend/src/scripts/form.ts +++ b/packages/frontend/src/scripts/form.ts @@ -3,18 +3,22 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import * as Misskey from 'misskey-js'; + type EnumItem = string | { label: string; value: string; }; +type Hidden = boolean | ((v: any) => boolean); + export type FormItem = { label?: string; type: 'string'; default: string | null; description?: string; required?: boolean; - hidden?: boolean; + hidden?: Hidden; multiline?: boolean; treatAsMfm?: boolean; } | { @@ -23,27 +27,27 @@ export type FormItem = { default: number | null; description?: string; required?: boolean; - hidden?: boolean; + hidden?: Hidden; step?: number; } | { label?: string; type: 'boolean'; default: boolean | null; description?: string; - hidden?: boolean; + hidden?: Hidden; } | { label?: string; type: 'enum'; default: string | null; required?: boolean; - hidden?: boolean; + hidden?: Hidden; enum: EnumItem[]; } | { label?: string; type: 'radio'; default: unknown | null; required?: boolean; - hidden?: boolean; + hidden?: Hidden; options: { label: string; value: unknown; @@ -58,20 +62,27 @@ export type FormItem = { min: number; max: number; textConverter?: (value: number) => string; + hidden?: Hidden; } | { label?: string; type: 'object'; default: Record<string, unknown> | null; - hidden: boolean; + hidden: Hidden; } | { label?: string; type: 'array'; default: unknown[] | null; - hidden: boolean; + hidden: Hidden; } | { type: 'button'; content?: string; + hidden?: Hidden; action: (ev: MouseEvent, v: any) => void; +} | { + type: 'drive-file'; + defaultFileId?: string | null; + hidden?: Hidden; + validate?: (v: Misskey.entities.DriveFile) => Promise<boolean>; }; export type Form = Record<string, FormItem>; @@ -84,8 +95,9 @@ type GetItemType<Item extends FormItem> = Item['type'] extends 'range' ? number : Item['type'] extends 'enum' ? string : Item['type'] extends 'array' ? unknown[] : - Item['type'] extends 'object' ? Record<string, unknown> - : never; + Item['type'] extends 'object' ? Record<string, unknown> : + Item['type'] extends 'drive-file' ? Misskey.entities.DriveFile | undefined : + never; export type GetFormResultType<F extends Form> = { [P in keyof F]: GetItemType<F[P]>; |