From f15ba78cc53bbf7f66c4f279ea67a6157272dead Mon Sep 17 00:00:00 2001 From: Ben Gotow Date: Wed, 27 Sep 2017 10:28:47 -0700 Subject: [PATCH] Wait for draft changes to be saved before clearing change set --- app/internal_packages/composer/lib/composer-view.jsx | 3 +-- app/src/flux/stores/draft-editing-session.es6 | 4 +++- app/src/flux/stores/draft-store.es6 | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/internal_packages/composer/lib/composer-view.jsx b/app/internal_packages/composer/lib/composer-view.jsx index 76485ab11..cfe91380d 100644 --- a/app/internal_packages/composer/lib/composer-view.jsx +++ b/app/internal_packages/composer/lib/composer-view.jsx @@ -594,8 +594,7 @@ export default class ComposerView extends React.Component { }; _onDestroyDraft = () => { - const { draft } = this.props; - Actions.destroyDraft(draft); + Actions.destroyDraft(this.props.draft); }; _onSelectAttachment = () => { diff --git a/app/src/flux/stores/draft-editing-session.es6 b/app/src/flux/stores/draft-editing-session.es6 index 3bdce7db5..726c05866 100644 --- a/app/src/flux/stores/draft-editing-session.es6 +++ b/app/src/flux/stores/draft-editing-session.es6 @@ -390,7 +390,9 @@ export default class DraftEditingSession extends MailspringStore { // by creating a new draft const baseDraft = draft || inMemoryDraft; const updatedDraft = this.changes.applyToModel(baseDraft); - Actions.queueTask(new SyncbackDraftTask({ draft: updatedDraft })); + const task = new SyncbackDraftTask({ draft: updatedDraft }); + Actions.queueTask(task); + await TaskQueue.waitForPerformLocal(task); } // Undo / Redo diff --git a/app/src/flux/stores/draft-store.es6 b/app/src/flux/stores/draft-store.es6 index b5ad7e7f7..ee708c6d8 100644 --- a/app/src/flux/stores/draft-store.es6 +++ b/app/src/flux/stores/draft-store.es6 @@ -110,8 +110,8 @@ class DraftStore extends MailspringStore { if (draft && draft.pristine) { Actions.queueTask( new DestroyDraftTask({ + messageIds: [draft.id], accountId: draft.accountId, - messageIds: [draft.headerMessageId], }) ); } else {