Changed PostStore.getDraft/getCommentDraft to return an empty draft instead of null when no draft is found
Этот коммит содержится в:
@@ -89,9 +89,6 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
handleUserInput: function(messageText) {
|
handleUserInput: function(messageText) {
|
||||||
var draft = PostStore.getCommentDraft(this.props.rootId);
|
var draft = PostStore.getCommentDraft(this.props.rootId);
|
||||||
if (!draft) {
|
|
||||||
draft = {previews: [], uploadsInProgress: []};
|
|
||||||
}
|
|
||||||
draft.message = messageText;
|
draft.message = messageText;
|
||||||
PostStore.storeCommentDraft(this.props.rootId, draft);
|
PostStore.storeCommentDraft(this.props.rootId, draft);
|
||||||
|
|
||||||
@@ -101,12 +98,6 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
handleUploadStart: function(clientIds, channelId) {
|
handleUploadStart: function(clientIds, channelId) {
|
||||||
var draft = PostStore.getCommentDraft(this.props.rootId);
|
var draft = PostStore.getCommentDraft(this.props.rootId);
|
||||||
if (!draft) {
|
|
||||||
draft = {};
|
|
||||||
draft['message'] = '';
|
|
||||||
draft['uploadsInProgress'] = [];
|
|
||||||
draft['previews'] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
draft['uploadsInProgress'] = draft['uploadsInProgress'].concat(clientIds);
|
draft['uploadsInProgress'] = draft['uploadsInProgress'].concat(clientIds);
|
||||||
PostStore.storeCommentDraft(this.props.rootId, draft);
|
PostStore.storeCommentDraft(this.props.rootId, draft);
|
||||||
@@ -115,12 +106,6 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
handleFileUploadComplete: function(filenames, clientIds, channelId) {
|
handleFileUploadComplete: function(filenames, clientIds, channelId) {
|
||||||
var draft = PostStore.getCommentDraft(this.props.rootId);
|
var draft = PostStore.getCommentDraft(this.props.rootId);
|
||||||
if (!draft) {
|
|
||||||
draft = {};
|
|
||||||
draft['message'] = '';
|
|
||||||
draft['uploadsInProgress'] = [];
|
|
||||||
draft['previews'] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove each finished file from uploads
|
// remove each finished file from uploads
|
||||||
for (var i = 0; i < clientIds.length; i++) {
|
for (var i = 0; i < clientIds.length; i++) {
|
||||||
@@ -138,12 +123,6 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
handleUploadError: function(err, clientId) {
|
handleUploadError: function(err, clientId) {
|
||||||
var draft = PostStore.getCommentDraft(this.props.rootId);
|
var draft = PostStore.getCommentDraft(this.props.rootId);
|
||||||
if (!draft) {
|
|
||||||
draft = {};
|
|
||||||
draft['message'] = '';
|
|
||||||
draft['uploadsInProgress'] = [];
|
|
||||||
draft['previews'] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
var index = draft['uploadsInProgress'].indexOf(clientId);
|
var index = draft['uploadsInProgress'].indexOf(clientId);
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
@@ -175,9 +154,6 @@ module.exports = React.createClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
var draft = PostStore.getCommentDraft(this.props.rootId);
|
var draft = PostStore.getCommentDraft(this.props.rootId);
|
||||||
if (!draft) {
|
|
||||||
draft = {message: '', uploadsInProgress: []};
|
|
||||||
}
|
|
||||||
draft.previews = previews;
|
draft.previews = previews;
|
||||||
draft.uploadsInProgress = uploadsInProgress;
|
draft.uploadsInProgress = uploadsInProgress;
|
||||||
PostStore.storeCommentDraft(this.props.rootId, draft);
|
PostStore.storeCommentDraft(this.props.rootId, draft);
|
||||||
@@ -188,28 +164,12 @@ module.exports = React.createClass({
|
|||||||
PostStore.clearCommentDraftUploads();
|
PostStore.clearCommentDraftUploads();
|
||||||
|
|
||||||
var draft = PostStore.getCommentDraft(this.props.rootId);
|
var draft = PostStore.getCommentDraft(this.props.rootId);
|
||||||
var messageText = '';
|
return {messageText: draft['message'], uploadsInProgress: draft['uploadsInProgress'], previews: draft['previews'], submitting: false};
|
||||||
var uploadsInProgress = [];
|
|
||||||
var previews = [];
|
|
||||||
if (draft) {
|
|
||||||
messageText = draft.message;
|
|
||||||
uploadsInProgress = draft.uploadsInProgress;
|
|
||||||
previews = draft.previews
|
|
||||||
}
|
|
||||||
return {messageText: messageText, uploadsInProgress: uploadsInProgress, previews: previews, submitting: false};
|
|
||||||
},
|
},
|
||||||
componentWillReceiveProps: function(newProps) {
|
componentWillReceiveProps: function(newProps) {
|
||||||
if (newProps.rootId !== this.props.rootId) {
|
if (newProps.rootId !== this.props.rootId) {
|
||||||
var draft = PostStore.getCommentDraft(newProps.rootId);
|
var draft = PostStore.getCommentDraft(newProps.rootId);
|
||||||
var messageText = '';
|
this.setState({messageText: draft['message'], uploadsInProgress: draft['uploadsInProgress'], previews: draft['previews']});
|
||||||
var uploadsInProgress = [];
|
|
||||||
var previews = [];
|
|
||||||
if (draft) {
|
|
||||||
messageText = draft.message;
|
|
||||||
uploadsInProgress = draft.uploadsInProgress;
|
|
||||||
previews = draft.previews
|
|
||||||
}
|
|
||||||
this.setState({messageText: messageText, uploadsInProgress: uploadsInProgress, previews: previews});
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getFileCount: function(channelId) {
|
getFileCount: function(channelId) {
|
||||||
|
|||||||
@@ -111,11 +111,6 @@ module.exports = React.createClass({
|
|||||||
this.setState({messageText: messageText});
|
this.setState({messageText: messageText});
|
||||||
|
|
||||||
var draft = PostStore.getCurrentDraft();
|
var draft = PostStore.getCurrentDraft();
|
||||||
if (!draft) {
|
|
||||||
draft = {};
|
|
||||||
draft['previews'] = [];
|
|
||||||
draft['uploadsInProgress'] = [];
|
|
||||||
}
|
|
||||||
draft['message'] = messageText;
|
draft['message'] = messageText;
|
||||||
PostStore.storeCurrentDraft(draft);
|
PostStore.storeCurrentDraft(draft);
|
||||||
},
|
},
|
||||||
@@ -126,12 +121,6 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
handleUploadStart: function(clientIds, channelId) {
|
handleUploadStart: function(clientIds, channelId) {
|
||||||
var draft = PostStore.getDraft(channelId);
|
var draft = PostStore.getDraft(channelId);
|
||||||
if (!draft) {
|
|
||||||
draft = {};
|
|
||||||
draft['message'] = '';
|
|
||||||
draft['uploadsInProgress'] = [];
|
|
||||||
draft['previews'] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
draft['uploadsInProgress'] = draft['uploadsInProgress'].concat(clientIds);
|
draft['uploadsInProgress'] = draft['uploadsInProgress'].concat(clientIds);
|
||||||
PostStore.storeDraft(channelId, draft);
|
PostStore.storeDraft(channelId, draft);
|
||||||
@@ -140,12 +129,6 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
handleFileUploadComplete: function(filenames, clientIds, channelId) {
|
handleFileUploadComplete: function(filenames, clientIds, channelId) {
|
||||||
var draft = PostStore.getDraft(channelId);
|
var draft = PostStore.getDraft(channelId);
|
||||||
if (!draft) {
|
|
||||||
draft = {};
|
|
||||||
draft['message'] = '';
|
|
||||||
draft['uploadsInProgress'] = [];
|
|
||||||
draft['previews'] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove each finished file from uploads
|
// remove each finished file from uploads
|
||||||
for (var i = 0; i < clientIds.length; i++) {
|
for (var i = 0; i < clientIds.length; i++) {
|
||||||
@@ -163,12 +146,6 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
handleUploadError: function(err, clientId) {
|
handleUploadError: function(err, clientId) {
|
||||||
var draft = PostStore.getDraft(this.state.channelId);
|
var draft = PostStore.getDraft(this.state.channelId);
|
||||||
if (!draft) {
|
|
||||||
draft = {};
|
|
||||||
draft['message'] = '';
|
|
||||||
draft['uploadsInProgress'] = [];
|
|
||||||
draft['previews'] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
var index = draft['uploadsInProgress'].indexOf(clientId);
|
var index = draft['uploadsInProgress'].indexOf(clientId);
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
@@ -197,11 +174,6 @@ module.exports = React.createClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
var draft = PostStore.getCurrentDraft();
|
var draft = PostStore.getCurrentDraft();
|
||||||
if (!draft) {
|
|
||||||
draft = {};
|
|
||||||
draft['message'] = '';
|
|
||||||
draft['uploadsInProgress'] = [];
|
|
||||||
}
|
|
||||||
draft['previews'] = previews;
|
draft['previews'] = previews;
|
||||||
draft['uploadsInProgress'] = uploadsInProgress;
|
draft['uploadsInProgress'] = uploadsInProgress;
|
||||||
PostStore.storeCurrentDraft(draft);
|
PostStore.storeCurrentDraft(draft);
|
||||||
@@ -219,17 +191,9 @@ module.exports = React.createClass({
|
|||||||
var channelId = ChannelStore.getCurrentId();
|
var channelId = ChannelStore.getCurrentId();
|
||||||
if (this.state.channelId !== channelId) {
|
if (this.state.channelId !== channelId) {
|
||||||
var draft = PostStore.getCurrentDraft();
|
var draft = PostStore.getCurrentDraft();
|
||||||
var previews = [];
|
|
||||||
var messageText = '';
|
|
||||||
var uploadsInProgress = [];
|
|
||||||
if (draft) {
|
|
||||||
previews = draft['previews'];
|
|
||||||
messageText = draft['message'];
|
|
||||||
uploadsInProgress = draft['uploadsInProgress'];
|
|
||||||
}
|
|
||||||
this.setState({
|
this.setState({
|
||||||
channelId: channelId, messageText: messageText, initialText: messageText, submitting: false,
|
channelId: channelId, messageText: draft['message'], initialText: draft['message'], submitting: false,
|
||||||
serverError: null, postError: null, previews: previews, uploadsInProgress: uploadsInProgress
|
serverError: null, postError: null, previews: draft['previews'], uploadsInProgress: draft['uploadsInProgress']
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -237,13 +201,10 @@ module.exports = React.createClass({
|
|||||||
PostStore.clearDraftUploads();
|
PostStore.clearDraftUploads();
|
||||||
|
|
||||||
var draft = PostStore.getCurrentDraft();
|
var draft = PostStore.getCurrentDraft();
|
||||||
var previews = [];
|
return {
|
||||||
var messageText = '';
|
channelId: ChannelStore.getCurrentId(), messageText: draft['message'], uploadsInProgress: draft['uploadsInProgress'],
|
||||||
if (draft) {
|
previews: draft['previews'], submitting: false, initialText: draft['message']
|
||||||
previews = draft['previews'];
|
};
|
||||||
messageText = draft['message'];
|
|
||||||
}
|
|
||||||
return {channelId: ChannelStore.getCurrentId(), messageText: messageText, uploadsInProgress: [], previews: previews, submitting: false, initialText: messageText};
|
|
||||||
},
|
},
|
||||||
getFileCount: function(channelId) {
|
getFileCount: function(channelId) {
|
||||||
if (channelId === this.state.channelId) {
|
if (channelId === this.state.channelId) {
|
||||||
@@ -251,11 +212,7 @@ module.exports = React.createClass({
|
|||||||
} else {
|
} else {
|
||||||
var draft = PostStore.getDraft(channelId);
|
var draft = PostStore.getDraft(channelId);
|
||||||
|
|
||||||
if (draft) {
|
return draft['previews'].length + draft['uploadsInProgress'].length;
|
||||||
return draft['previews'].length + draft['uploadsInProgress'].length;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
render: function() {
|
render: function() {
|
||||||
|
|||||||
@@ -132,25 +132,28 @@ var PostStore = assign({}, EventEmitter.prototype, {
|
|||||||
getSearchTerm: function getSearchTerm() {
|
getSearchTerm: function getSearchTerm() {
|
||||||
return BrowserStore.getItem('search_term');
|
return BrowserStore.getItem('search_term');
|
||||||
},
|
},
|
||||||
|
getEmptyDraft: function getEmptyDraft(draft) {
|
||||||
|
return {message: '', uploadsInProgress: [], previews: []};
|
||||||
|
},
|
||||||
storeCurrentDraft: function storeCurrentDraft(draft) {
|
storeCurrentDraft: function storeCurrentDraft(draft) {
|
||||||
var channelId = ChannelStore.getCurrentId();
|
var channelId = ChannelStore.getCurrentId();
|
||||||
BrowserStore.setItem('draft_' + channelId, draft);
|
BrowserStore.setItem('draft_' + channelId, draft);
|
||||||
},
|
},
|
||||||
getCurrentDraft: function getCurrentDraft() {
|
getCurrentDraft: function getCurrentDraft() {
|
||||||
var channelId = ChannelStore.getCurrentId();
|
var channelId = ChannelStore.getCurrentId();
|
||||||
return BrowserStore.getItem('draft_' + channelId);
|
return PostStore.getDraft(channelId);
|
||||||
},
|
},
|
||||||
storeDraft: function storeDraft(channelId, draft) {
|
storeDraft: function storeDraft(channelId, draft) {
|
||||||
BrowserStore.setItem('draft_' + channelId, draft);
|
BrowserStore.setItem('draft_' + channelId, draft);
|
||||||
},
|
},
|
||||||
getDraft: function getDraft(channelId) {
|
getDraft: function getDraft(channelId) {
|
||||||
return BrowserStore.getItem('draft_' + channelId);
|
return BrowserStore.getItem('draft_' + channelId, PostStore.getEmptyDraft());
|
||||||
},
|
},
|
||||||
storeCommentDraft: function storeCommentDraft(parentPostId, draft) {
|
storeCommentDraft: function storeCommentDraft(parentPostId, draft) {
|
||||||
BrowserStore.setItem('comment_draft_' + parentPostId, draft);
|
BrowserStore.setItem('comment_draft_' + parentPostId, draft);
|
||||||
},
|
},
|
||||||
getCommentDraft: function getCommentDraft(parentPostId) {
|
getCommentDraft: function getCommentDraft(parentPostId) {
|
||||||
return BrowserStore.getItem('comment_draft_' + parentPostId);
|
return BrowserStore.getItem('comment_draft_' + parentPostId, PostStore.getEmptyDraft());
|
||||||
},
|
},
|
||||||
clearDraftUploads: function clearDraftUploads() {
|
clearDraftUploads: function clearDraftUploads() {
|
||||||
BrowserStore.actionOnItemsWithPrefix('draft_', function clearUploads(key, value) {
|
BrowserStore.actionOnItemsWithPrefix('draft_', function clearUploads(key, value) {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user