diff --git a/src/client/components/post-form-dialog.vue b/src/client/components/post-form-dialog.vue index fbdf937556..81d487fa97 100644 --- a/src/client/components/post-form-dialog.vue +++ b/src/client/components/post-form-dialog.vue @@ -1,6 +1,6 @@ <template> <div class="ulveipgl" :style="{ pointerEvents: closing ? 'none' : 'auto' }"> - <transition :name="$store.state.device.animation ? 'form-fade' : ''" appear @after-leave="$store.commit('setPostForm', null)"> + <transition :name="$store.state.device.animation ? 'form-fade' : ''" appear @after-leave="destroy"> <div class="bg _modalBg" ref="bg" v-if="!closing" @click="close()"></div> </transition> <div class="main" ref="main" @click.self="close()" @keydown="onKeydown"> @@ -36,6 +36,12 @@ export default defineComponent({ }, props: { + destroy: { + required: true + }, + emit: { + required: true + }, reply: { type: Object, required: false diff --git a/src/client/default.vue b/src/client/default.vue index 96b2d484fd..2899f684ee 100644 --- a/src/client/default.vue +++ b/src/client/default.vue @@ -296,7 +296,7 @@ export default defineComponent({ }, post() { - this.$store.commit('setPostForm', {}); + os.post(); }, search() { diff --git a/src/client/os.ts b/src/client/os.ts index 9fbae46fe8..f1dfd58b40 100644 --- a/src/client/os.ts +++ b/src/client/os.ts @@ -73,7 +73,13 @@ export function dialog(props: Record<string, any>) { export function menu(props: Record<string, any>) { return new Promise((res, rej) => { - return popup(defineAsyncComponent(() => import('@/components/menu.vue')), props, res); + popup(defineAsyncComponent(() => import('@/components/menu.vue')), props, res); + }); +} + +export function post(props: Record<string, any>) { + return new Promise((res, rej) => { + popup(defineAsyncComponent(() => import('@/components/post-form-dialog.vue')), props, res); }); }