Changed PostStore.getDraft/getCommentDraft to return an empty draft instead of null when no draft is found

This commit is contained in:
hmhealey
2015-08-11 09:41:18 -04:00
parent 6ec1b7a8b3
commit 17b05f705f
3 changed files with 15 additions and 95 deletions

View File

@@ -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) {

View File

@@ -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() {

View File

@@ -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) {