summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkDialog.vue
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2026-01-09 12:21:08 +0900
committerGitHub <noreply@github.com>2026-01-09 12:21:08 +0900
commit2a14025c29081bd8080b4dec0823a7625a791950 (patch)
treee02f7fe6363457996efba020ec964bb6e4f041ed /packages/frontend/src/components/MkDialog.vue
parentBump version to 2026.1.0-alpha.3 (diff)
downloadmisskey-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.vue11
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();
}