From a8e772fa4878e3004e5399d85b7105dee3859312 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Mon, 31 Oct 2016 10:52:00 -0400 Subject: Cleaned up code for ensuring post drafts are non-null (#4382) --- webapp/stores/browser_store.jsx | 4 ++-- webapp/stores/post_store.jsx | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) (limited to 'webapp/stores') diff --git a/webapp/stores/browser_store.jsx b/webapp/stores/browser_store.jsx index 4b8bae06b..99aebc466 100644 --- a/webapp/stores/browser_store.jsx +++ b/webapp/stores/browser_store.jsx @@ -52,7 +52,7 @@ class BrowserStoreClass { } } - getGlobalItem(name, defaultValue) { + getGlobalItem(name, defaultValue = null) { var result = null; try { if (this.isLocalStorageSupported()) { @@ -64,7 +64,7 @@ class BrowserStoreClass { result = null; } - if (result === null && typeof defaultValue !== 'undefined') { + if (!result) { result = defaultValue; } 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() { -- cgit v1.2.3-1-g7c22