diff options
author | greta <gretadoci@gmail.com> | 2022-05-01 18:53:00 +0300 |
---|---|---|
committer | greta <gretadoci@gmail.com> | 2022-05-02 14:08:25 +0300 |
commit | 368a36959857b567e280dd190a45187d9db6a179 (patch) | |
tree | d5fa6b54cb18ab196c981ef898cc245731bdd3c1 | |
parent | 696560b38125363f9ba0a419425c712dab6c9efa (diff) |
Fix discard message on outbox and improve the discard new message
Signed-off-by: greta <gretadoci@gmail.com>
-rw-r--r-- | src/components/Composer.vue | 16 | ||||
-rw-r--r-- | src/components/NewMessageModal.vue | 21 |
2 files changed, 22 insertions, 15 deletions
diff --git a/src/components/Composer.vue b/src/components/Composer.vue index ed245d82b..233666504 100644 --- a/src/components/Composer.vue +++ b/src/components/Composer.vue @@ -317,10 +317,6 @@ :hint="t('mail', 'Sending …')" role="alert" class="sending-hint" /> - <Loading v-else-if="state === STATES.DISCARDING" :hint="t('mail', 'Discarding …')" class="emptycontent" /> - <EmptyContent v-else-if="state === STATES.DISCARDED" icon="icon-mail"> - <h2>{{ t('mail', 'Draft was discarded!') }}</h2> - </EmptyContent> <div v-else-if="state === STATES.ERROR" class="emptycontent" role="alert"> <h2>{{ t('mail', 'Error sending your message') }}</h2> <p v-if="errorText"> @@ -1041,16 +1037,8 @@ export default { return `${alias.name} <${alias.emailAddress}>` }, async discardDraft() { - this.state = STATES.DISCARDING - let id - try { - id = await this.draftsPromise - await this.$store.dispatch('deleteMessage', { id }) - } catch (err) { - logger.error('Could not delete message with id ' + id) - } - this.state = STATES.DISCARDED - this.$emit('close') + const id = await this.draftsPromise + this.$emit('discard-draft', id) }, /** * Whether the date is acceptable diff --git a/src/components/NewMessageModal.vue b/src/components/NewMessageModal.vue index b9aac64f9..9670af498 100644 --- a/src/components/NewMessageModal.vue +++ b/src/components/NewMessageModal.vue @@ -17,6 +17,7 @@ :draft="saveDraft" :send="sendMessage" :forwarded-messages="forwardedMessages" + @discard-draft="discardDraft" @close="$emit('close')" /> </Modal> </template> @@ -26,7 +27,7 @@ import logger from '../logger' import { toPlain } from '../util/text' import { saveDraft } from '../service/MessageService' import Composer from './Composer' -import { showError, showUndo } from '@nextcloud/dialogs' +import { showError, showSuccess, showUndo } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' import { UNDO_DELAY } from '../store/constants' @@ -187,6 +188,24 @@ export default { return `"${recipient.label}" <${recipient.email}>` } }, + async discardDraft(id) { + const isOutbox = this.composerMessage.type === 'outbox' + if (isOutbox) { + id = this.composerMessage.data.id + } + this.$emit('close') + try { + if (isOutbox) { + await this.$store.dispatch('outbox/deleteMessage', { id }) + } else { + await this.$store.dispatch('deleteMessage', { id }) + } + showSuccess(t('mail', 'Message discarded')) + } catch (error) { + console.error(error) + showError(t('mail', 'Could not discard message')) + } + }, }, } |