diff --git a/src/components/Composer.vue b/src/components/Composer.vue index 34163c0721..c3629ff378 100644 --- a/src/components/Composer.vue +++ b/src/components/Composer.vue @@ -479,7 +479,7 @@ import Vue from 'vue' import mitt from 'mitt' import { findRecipient } from '../service/AutocompleteService.js' -import { detect, html, toHtml, toPlain } from '../util/text.js' +import { detect, html, plain, toHtml, toPlain } from '../util/text.js' import logger from '../logger.js' import TextEditor from './TextEditor.vue' import { buildReplyBody } from '../ReplyBuilder.js' @@ -925,6 +925,13 @@ export default { }, bodyVal(val) { this.$emit('update:editor-body', val) + + const data = this.getMessageData() + if (data.isHtml) { + this.$emit('update:body', html(data.bodyHtml)) + } else { + this.$emit('update:body', plain(data.bodyPlain)) + } }, attachments(val) { this.$emit('update:attachments-data', val) diff --git a/src/components/NewMessageModal.vue b/src/components/NewMessageModal.vue index a525ff7005..6740c24f0f 100644 --- a/src/components/NewMessageModal.vue +++ b/src/components/NewMessageModal.vue @@ -93,7 +93,7 @@ @update:bcc="patchComposerData({ bcc: $event })" @update:subject="patchComposerData({ subject: $event })" @update:attachments-data="patchComposerData({ attachments: $event })" - @update:editor-body="patchEditorBody" + @update:body="patchEditorBody" @update:send-at="patchComposerData({ sendAt: $event / 1000 })" @update:smime-sign="patchComposerData({ smimeSign: $event })" @update:smime-encrypt="patchComposerData({ smimeSign: $event })" @@ -138,7 +138,7 @@ import { mapStores, mapState, mapActions } from 'pinia' import RecipientInfo from './RecipientInfo.vue' import useMainStore from '../store/mainStore.js' import { messageBodyToTextInstance } from '../util/message.js' -import { toPlain } from '../util/text.js' +import { isHtml, isPlain, toPlain } from '../util/text.js' export default { name: 'NewMessageModal', @@ -558,11 +558,19 @@ export default { return composerData.bodyPlain }, - patchEditorBody(editorBody) { - if (this.composerData.isHtml) { - this.patchComposerData({ bodyHtml: editorBody }) - } else { - this.patchComposerData({ bodyPlain: editorBody }) + async patchEditorBody(body) { + if (isHtml(body)) { + await this.patchComposerData({ + isHtml: true, + bodyHtml: body.value, + bodyPlain: undefined, + }) + } else if (isPlain(body)) { + await this.patchComposerData({ + isHtml: false, + bodyHtml: undefined, + bodyPlain: body.value, + }) } }, updateCookedComposerData() {