mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-23 07:34:09 +02:00
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]
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user