diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2026-01-09 12:21:08 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-09 12:21:08 +0900 |
| commit | 2a14025c29081bd8080b4dec0823a7625a791950 (patch) | |
| tree | e02f7fe6363457996efba020ec964bb6e4f041ed /packages/frontend/src/components/MkDialog.vue | |
| parent | Bump version to 2026.1.0-alpha.3 (diff) | |
| download | misskey-2a14025c29081bd8080b4dec0823a7625a791950.tar.gz misskey-2a14025c29081bd8080b4dec0823a7625a791950.tar.bz2 misskey-2a14025c29081bd8080b4dec0823a7625a791950.zip | |
fix(frontend): popupのemit型が正しく利用できるように修正 (#16826)
* fix(frontend): popupのemit型が正しく利用できるように修正
* fix: revert unnecessary code (for testing purpose)
* fix lint
* fix type errors
* fix types
* add comment
* fix
* fix
* fix: OverloadToUnionの仕組みを変更
* add comments, clean up
* fix lint
* fix types
* clean up [ci skip]
* fix
* add comments [ci skip]
Diffstat (limited to 'packages/frontend/src/components/MkDialog.vue')
| -rw-r--r-- | packages/frontend/src/components/MkDialog.vue | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/packages/frontend/src/components/MkDialog.vue b/packages/frontend/src/components/MkDialog.vue index 705301a6a6..bea0392d2d 100644 --- a/packages/frontend/src/components/MkDialog.vue +++ b/packages/frontend/src/components/MkDialog.vue @@ -41,6 +41,11 @@ SPDX-License-Identifier: AGPL-3.0-only </MkModal> </template> +<script lang="ts"> +export type Result = string | number | true | null; +export type MkDialogReturnType<T = Result> = { canceled: true, result: undefined } | { canceled: false, result: T }; +</script> + <script lang="ts" setup> import { ref, useTemplateRef, computed } from 'vue'; import MkModal from '@/components/MkModal.vue'; @@ -65,8 +70,6 @@ type Select = { default: OptionValue | null; }; -type Result = string | number | true | null; - const props = withDefaults(defineProps<{ type?: 'success' | 'error' | 'warning' | 'info' | 'question' | 'waiting'; title?: string; @@ -93,7 +96,7 @@ const props = withDefaults(defineProps<{ }); const emit = defineEmits<{ - (ev: 'done', v: { canceled: true } | { canceled: false, result: Result }): void; + (ev: 'done', v: MkDialogReturnType): void; (ev: 'closed'): void; }>(); @@ -131,7 +134,7 @@ function done(canceled: true): void; function done(canceled: false, result: Result): void; // eslint-disable-line no-redeclare function done(canceled: boolean, result?: Result): void { // eslint-disable-line no-redeclare - emit('done', { canceled, result } as { canceled: true } | { canceled: false, result: Result }); + emit('done', { canceled, result } as MkDialogReturnType); modal.value?.close(); } |