diff options
Diffstat (limited to 'webapp/stores/post_store.jsx')
-rw-r--r-- | webapp/stores/post_store.jsx | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/webapp/stores/post_store.jsx b/webapp/stores/post_store.jsx index cdd3f5860..6adc03bad 100644 --- a/webapp/stores/post_store.jsx +++ b/webapp/stores/post_store.jsx @@ -513,8 +513,23 @@ class PostStoreClass extends EventEmitter { return lastPost; } - getEmptyDraft() { - return {message: '', uploadsInProgress: [], fileInfos: []}; + normalizeDraft(originalDraft) { + let draft = { + messageText: '', + uploadsInProgress: [], + fileInfos: [] + }; + + // Make sure that the post draft is non-null and has all the required fields + if (originalDraft) { + draft = { + messageText: originalDraft.messageText || draft.messageText, + uploadsInProgress: originalDraft.uploadsInProgress || draft.uploadsInProgress, + fileInfos: originalDraft.fileInfos || draft.fileInfos + }; + } + + return draft; } storeCurrentDraft(draft) { @@ -532,7 +547,7 @@ class PostStoreClass extends EventEmitter { } getDraft(channelId) { - return BrowserStore.getGlobalItem('draft_' + channelId, this.getEmptyDraft()); + return this.normalizeDraft(BrowserStore.getGlobalItem('draft_' + channelId)); } storeCommentDraft(parentPostId, draft) { @@ -540,7 +555,7 @@ class PostStoreClass extends EventEmitter { } getCommentDraft(parentPostId) { - return BrowserStore.getGlobalItem('comment_draft_' + parentPostId, this.getEmptyDraft()); + return this.normalizeDraft(BrowserStore.getGlobalItem('comment_draft_' + parentPostId)); } clearDraftUploads() { |