diff options
Diffstat (limited to 'packages/frontend/src/components/MkPostFormDialog.vue')
| -rw-r--r-- | packages/frontend/src/components/MkPostFormDialog.vue | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/packages/frontend/src/components/MkPostFormDialog.vue b/packages/frontend/src/components/MkPostFormDialog.vue index c467e29df6..0a655bab99 100644 --- a/packages/frontend/src/components/MkPostFormDialog.vue +++ b/packages/frontend/src/components/MkPostFormDialog.vue @@ -7,9 +7,9 @@ SPDX-License-Identifier: AGPL-3.0-only <MkModal ref="modal" :preferType="'dialog'" - @click="modal?.close()" + @click="_close()" @closed="onModalClosed()" - @esc="modal?.close()" + @esc="_close()" > <MkPostForm ref="form" @@ -18,8 +18,8 @@ SPDX-License-Identifier: AGPL-3.0-only autofocus freezeAfterPosted @posted="onPosted" - @cancel="modal?.close()" - @esc="modal?.close()" + @cancel="_close()" + @esc="_close()" /> </MkModal> </template> @@ -43,6 +43,7 @@ const emit = defineEmits<{ }>(); const modal = useTemplateRef('modal'); +const form = useTemplateRef('form'); function onPosted() { modal.value?.close({ @@ -50,6 +51,12 @@ function onPosted() { }); } +async function _close() { + const canClose = await form.value?.canClose(); + if (!canClose) return; + modal.value?.close(); +} + function onModalClosed() { emit('closed'); } |