From 17b05f705f910429ece1ca6c64ec56bf89dd014b Mon Sep 17 00:00:00 2001 From: hmhealey Date: Tue, 11 Aug 2015 09:41:18 -0400 Subject: Changed PostStore.getDraft/getCommentDraft to return an empty draft instead of null when no draft is found --- web/react/components/create_comment.jsx | 44 ++----------------------- web/react/components/create_post.jsx | 57 ++++----------------------------- web/react/stores/post_store.jsx | 9 ++++-- 3 files changed, 15 insertions(+), 95 deletions(-) (limited to 'web') diff --git a/web/react/components/create_comment.jsx b/web/react/components/create_comment.jsx index 0eb5e28bf..78e06c532 100644 --- a/web/react/components/create_comment.jsx +++ b/web/react/components/create_comment.jsx @@ -89,9 +89,6 @@ module.exports = React.createClass({ }, handleUserInput: function(messageText) { var draft = PostStore.getCommentDraft(this.props.rootId); - if (!draft) { - draft = {previews: [], uploadsInProgress: []}; - } draft.message = messageText; PostStore.storeCommentDraft(this.props.rootId, draft); @@ -101,12 +98,6 @@ module.exports = React.createClass({ }, handleUploadStart: function(clientIds, channelId) { var draft = PostStore.getCommentDraft(this.props.rootId); - if (!draft) { - draft = {}; - draft['message'] = ''; - draft['uploadsInProgress'] = []; - draft['previews'] = []; - } draft['uploadsInProgress'] = draft['uploadsInProgress'].concat(clientIds); PostStore.storeCommentDraft(this.props.rootId, draft); @@ -115,12 +106,6 @@ module.exports = React.createClass({ }, handleFileUploadComplete: function(filenames, clientIds, channelId) { var draft = PostStore.getCommentDraft(this.props.rootId); - if (!draft) { - draft = {}; - draft['message'] = ''; - draft['uploadsInProgress'] = []; - draft['previews'] = []; - } // remove each finished file from uploads for (var i = 0; i < clientIds.length; i++) { @@ -138,12 +123,6 @@ module.exports = React.createClass({ }, handleUploadError: function(err, clientId) { var draft = PostStore.getCommentDraft(this.props.rootId); - if (!draft) { - draft = {}; - draft['message'] = ''; - draft['uploadsInProgress'] = []; - draft['previews'] = []; - } var index = draft['uploadsInProgress'].indexOf(clientId); if (index !== -1) { @@ -175,9 +154,6 @@ module.exports = React.createClass({ } var draft = PostStore.getCommentDraft(this.props.rootId); - if (!draft) { - draft = {message: '', uploadsInProgress: []}; - } draft.previews = previews; draft.uploadsInProgress = uploadsInProgress; PostStore.storeCommentDraft(this.props.rootId, draft); @@ -188,28 +164,12 @@ module.exports = React.createClass({ PostStore.clearCommentDraftUploads(); var draft = PostStore.getCommentDraft(this.props.rootId); - var messageText = ''; - var uploadsInProgress = []; - var previews = []; - if (draft) { - messageText = draft.message; - uploadsInProgress = draft.uploadsInProgress; - previews = draft.previews - } - return {messageText: messageText, uploadsInProgress: uploadsInProgress, previews: previews, submitting: false}; + return {messageText: draft['message'], uploadsInProgress: draft['uploadsInProgress'], previews: draft['previews'], submitting: false}; }, componentWillReceiveProps: function(newProps) { if (newProps.rootId !== this.props.rootId) { var draft = PostStore.getCommentDraft(newProps.rootId); - var messageText = ''; - var uploadsInProgress = []; - var previews = []; - if (draft) { - messageText = draft.message; - uploadsInProgress = draft.uploadsInProgress; - previews = draft.previews - } - this.setState({messageText: messageText, uploadsInProgress: uploadsInProgress, previews: previews}); + this.setState({messageText: draft['message'], uploadsInProgress: draft['uploadsInProgress'], previews: draft['previews']}); } }, getFileCount: function(channelId) { diff --git a/web/react/components/create_post.jsx b/web/react/components/create_post.jsx index 80b1208ff..9ca1d5388 100644 --- a/web/react/components/create_post.jsx +++ b/web/react/components/create_post.jsx @@ -111,11 +111,6 @@ module.exports = React.createClass({ this.setState({messageText: messageText}); var draft = PostStore.getCurrentDraft(); - if (!draft) { - draft = {}; - draft['previews'] = []; - draft['uploadsInProgress'] = []; - } draft['message'] = messageText; PostStore.storeCurrentDraft(draft); }, @@ -126,12 +121,6 @@ module.exports = React.createClass({ }, handleUploadStart: function(clientIds, channelId) { var draft = PostStore.getDraft(channelId); - if (!draft) { - draft = {}; - draft['message'] = ''; - draft['uploadsInProgress'] = []; - draft['previews'] = []; - } draft['uploadsInProgress'] = draft['uploadsInProgress'].concat(clientIds); PostStore.storeDraft(channelId, draft); @@ -140,12 +129,6 @@ module.exports = React.createClass({ }, handleFileUploadComplete: function(filenames, clientIds, channelId) { var draft = PostStore.getDraft(channelId); - if (!draft) { - draft = {}; - draft['message'] = ''; - draft['uploadsInProgress'] = []; - draft['previews'] = []; - } // remove each finished file from uploads for (var i = 0; i < clientIds.length; i++) { @@ -163,12 +146,6 @@ module.exports = React.createClass({ }, handleUploadError: function(err, clientId) { var draft = PostStore.getDraft(this.state.channelId); - if (!draft) { - draft = {}; - draft['message'] = ''; - draft['uploadsInProgress'] = []; - draft['previews'] = []; - } var index = draft['uploadsInProgress'].indexOf(clientId); if (index !== -1) { @@ -197,11 +174,6 @@ module.exports = React.createClass({ } var draft = PostStore.getCurrentDraft(); - if (!draft) { - draft = {}; - draft['message'] = ''; - draft['uploadsInProgress'] = []; - } draft['previews'] = previews; draft['uploadsInProgress'] = uploadsInProgress; PostStore.storeCurrentDraft(draft); @@ -219,17 +191,9 @@ module.exports = React.createClass({ var channelId = ChannelStore.getCurrentId(); if (this.state.channelId !== channelId) { var draft = PostStore.getCurrentDraft(); - var previews = []; - var messageText = ''; - var uploadsInProgress = []; - if (draft) { - previews = draft['previews']; - messageText = draft['message']; - uploadsInProgress = draft['uploadsInProgress']; - } this.setState({ - channelId: channelId, messageText: messageText, initialText: messageText, submitting: false, - serverError: null, postError: null, previews: previews, uploadsInProgress: uploadsInProgress + channelId: channelId, messageText: draft['message'], initialText: draft['message'], submitting: false, + serverError: null, postError: null, previews: draft['previews'], uploadsInProgress: draft['uploadsInProgress'] }); } }, @@ -237,13 +201,10 @@ module.exports = React.createClass({ PostStore.clearDraftUploads(); var draft = PostStore.getCurrentDraft(); - var previews = []; - var messageText = ''; - if (draft) { - previews = draft['previews']; - messageText = draft['message']; - } - return {channelId: ChannelStore.getCurrentId(), messageText: messageText, uploadsInProgress: [], previews: previews, submitting: false, initialText: messageText}; + return { + channelId: ChannelStore.getCurrentId(), messageText: draft['message'], uploadsInProgress: draft['uploadsInProgress'], + previews: draft['previews'], submitting: false, initialText: draft['message'] + }; }, getFileCount: function(channelId) { if (channelId === this.state.channelId) { @@ -251,11 +212,7 @@ module.exports = React.createClass({ } else { var draft = PostStore.getDraft(channelId); - if (draft) { - return draft['previews'].length + draft['uploadsInProgress'].length; - } else { - return 0; - } + return draft['previews'].length + draft['uploadsInProgress'].length; } }, render: function() { diff --git a/web/react/stores/post_store.jsx b/web/react/stores/post_store.jsx index 044e7b300..9ebdf734c 100644 --- a/web/react/stores/post_store.jsx +++ b/web/react/stores/post_store.jsx @@ -132,25 +132,28 @@ var PostStore = assign({}, EventEmitter.prototype, { getSearchTerm: function getSearchTerm() { return BrowserStore.getItem('search_term'); }, + getEmptyDraft: function getEmptyDraft(draft) { + return {message: '', uploadsInProgress: [], previews: []}; + }, storeCurrentDraft: function storeCurrentDraft(draft) { var channelId = ChannelStore.getCurrentId(); BrowserStore.setItem('draft_' + channelId, draft); }, getCurrentDraft: function getCurrentDraft() { var channelId = ChannelStore.getCurrentId(); - return BrowserStore.getItem('draft_' + channelId); + return PostStore.getDraft(channelId); }, storeDraft: function storeDraft(channelId, draft) { BrowserStore.setItem('draft_' + channelId, draft); }, getDraft: function getDraft(channelId) { - return BrowserStore.getItem('draft_' + channelId); + return BrowserStore.getItem('draft_' + channelId, PostStore.getEmptyDraft()); }, storeCommentDraft: function storeCommentDraft(parentPostId, draft) { BrowserStore.setItem('comment_draft_' + parentPostId, draft); }, getCommentDraft: function getCommentDraft(parentPostId) { - return BrowserStore.getItem('comment_draft_' + parentPostId); + return BrowserStore.getItem('comment_draft_' + parentPostId, PostStore.getEmptyDraft()); }, clearDraftUploads: function clearDraftUploads() { BrowserStore.actionOnItemsWithPrefix('draft_', function clearUploads(key, value) { -- cgit v1.2.3-1-g7c22