From bb8547b5be77e6c4c941e0ada60bbc54c96a7c89 Mon Sep 17 00:00:00 2001 From: greta Date: Mon, 7 Apr 2025 16:01:32 +0200 Subject: [PATCH 1/4] feat: close modal on send Signed-off-by: greta --- src/components/NewMessageModal.vue | 1 - src/store/outboxStore.js | 17 ++++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/components/NewMessageModal.vue b/src/components/NewMessageModal.vue index 5dc7757326..bb6b934b6e 100644 --- a/src/components/NewMessageModal.vue +++ b/src/components/NewMessageModal.vue @@ -46,7 +46,6 @@ - { logger.info('Attempting to stop sending message ' + message.id) const stopped = await this.stopMessage({ message }) logger.info('Message ' + message.id + ' stopped', { message: stopped }) + // The composer expects rich body data and not just a string + const bodyData = {} + if (message.isHtml) { + bodyData.bodyHtml = html(message.body) + } else { + bodyData.bodyPlain = plain(message.body) + } await this.mainStore.startComposerSession({ type: 'outbox', data: { ...message }, }, { root: true }) - }, { + }, + { timeout: UNDO_DELAY, close: true, }, @@ -196,6 +204,9 @@ export default defineStore('outbox', { setTimeout(async () => { try { const wasSent = await this.sendMessage({ id: message.id, force: false }) + if (wasSent) { + showSuccess(t('mail', 'Message sent')) + } resolve(wasSent) } catch (error) { showError(t('mail', 'Could not send message')) From 10107639fb1a83292512d418642938bf0cf947f7 Mon Sep 17 00:00:00 2001 From: greta Date: Thu, 24 Apr 2025 15:02:32 +0200 Subject: [PATCH 2/4] fixup! feat: close modal on send Signed-off-by: greta --- src/store/outboxStore.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/store/outboxStore.js b/src/store/outboxStore.js index 015aa3b770..37a694a20e 100644 --- a/src/store/outboxStore.js +++ b/src/store/outboxStore.js @@ -183,13 +183,6 @@ export default defineStore('outbox', { logger.info('Attempting to stop sending message ' + message.id) const stopped = await this.stopMessage({ message }) logger.info('Message ' + message.id + ' stopped', { message: stopped }) - // The composer expects rich body data and not just a string - const bodyData = {} - if (message.isHtml) { - bodyData.bodyHtml = html(message.body) - } else { - bodyData.bodyPlain = plain(message.body) - } await this.mainStore.startComposerSession({ type: 'outbox', data: { ...message }, From 777f46b9b1f8261dbee28de49247abb5824ed55d Mon Sep 17 00:00:00 2001 From: greta Date: Thu, 24 Apr 2025 15:07:11 +0200 Subject: [PATCH 3/4] fixup! feat: close modal on send Signed-off-by: greta --- src/store/outboxStore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/outboxStore.js b/src/store/outboxStore.js index 37a694a20e..17a6f8c9e8 100644 --- a/src/store/outboxStore.js +++ b/src/store/outboxStore.js @@ -8,7 +8,7 @@ import Vue from 'vue' import * as OutboxService from '../service/OutboxService.js' import logger from '../logger.js' -import { showError, showSuccess, showUndo, showInfo } from '@nextcloud/dialogs' +import { showError, showSuccess, showUndo } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' import { UNDO_DELAY } from './constants.js' import useMainStore from './mainStore.js' From 2d75fb34715cf5fb30ed69e5284eb59d895c6a2e Mon Sep 17 00:00:00 2001 From: greta Date: Tue, 29 Apr 2025 13:46:38 +0200 Subject: [PATCH 4/4] fixup! fixup! feat: close modal on send Signed-off-by: greta --- src/components/NewMessageModal.vue | 3 --- src/store/outboxStore.js | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/NewMessageModal.vue b/src/components/NewMessageModal.vue index bb6b934b6e..4ce6a5a136 100644 --- a/src/components/NewMessageModal.vue +++ b/src/components/NewMessageModal.vue @@ -45,7 +45,6 @@ - } Resolves to false if sending was skipped. Resolves after UNDO_DELAY has elapsed and the message dispatch was triggered. Warning: This might take a long time, depending on UNDO_DELAY. */ async sendMessageWithUndo({ id }) { + this.mainStore.hideMessageComposerMutation() + return new Promise((resolve, reject) => { const message = this.getMessage(id)