enhance(frontend/MkPostForm): ノートの投稿後すぐに投稿モーダルを閉じるように (MisskeyIO#605)

This commit is contained in:
水咲(みさき) 2024-04-11 18:27:27 +09:00 committed by GitHub
parent 5e476a76ca
commit 8b214f8247
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 2 deletions

View File

@ -162,7 +162,9 @@ const props = withDefaults(defineProps<{
provide('mock', props.mock); provide('mock', props.mock);
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'posting'): void;
(ev: 'posted'): void; (ev: 'posted'): void;
(ev: 'postError'): void;
(ev: 'cancel'): void; (ev: 'cancel'): void;
(ev: 'esc'): void; (ev: 'esc'): void;
@ -861,7 +863,9 @@ async function post(ev?: MouseEvent) {
type: 'error', type: 'error',
text: err.message + '\n' + (err as any).id, text: err.message + '\n' + (err as any).id,
}); });
emit("postError");
}); });
emit("posting");
} }
function cancel() { function cancel() {

View File

@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template> <template>
<MkModal ref="modal" :preferType="'dialog'" @click="modal?.close()" @closed="onModalClosed()"> <MkModal ref="modal" :preferType="'dialog'" @click="modal?.close()" @closed="onModalClosed()">
<MkPostForm ref="form" :class="$style.form" v-bind="props" autofocus freezeAfterPosted @posted="onPosted" @cancel="modal?.close()" @esc="modal?.close()"/> <MkPostForm ref="form" :class="$style.form" v-bind="props" autofocus freezeAfterPosted @posting="onPosting" @postError="onPostError" @cancel="modal?.close()" @esc="modal?.close()"/>
</MkModal> </MkModal>
</template> </template>
@ -14,6 +14,7 @@ import { shallowRef } from 'vue';
import * as Misskey from 'misskey-js'; import * as Misskey from 'misskey-js';
import MkModal from '@/components/MkModal.vue'; import MkModal from '@/components/MkModal.vue';
import MkPostForm from '@/components/MkPostForm.vue'; import MkPostForm from '@/components/MkPostForm.vue';
import * as os from '@/os.js';
const props = defineProps<{ const props = defineProps<{
reply?: Misskey.entities.Note; reply?: Misskey.entities.Note;
@ -40,12 +41,16 @@ const emit = defineEmits<{
const modal = shallowRef<InstanceType<typeof MkModal>>(); const modal = shallowRef<InstanceType<typeof MkModal>>();
const form = shallowRef<InstanceType<typeof MkPostForm>>(); const form = shallowRef<InstanceType<typeof MkPostForm>>();
function onPosted() { function onPosting() {
modal.value?.close({ modal.value?.close({
useSendAnimation: true, useSendAnimation: true,
}); });
} }
function onPostError() {
os.post();
}
function onModalClosed() { function onModalClosed() {
emit('closed'); emit('closed');
} }