summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorhmhealey <harrisonmhealey@gmail.com>2015-08-10 13:15:01 -0400
committerhmhealey <harrisonmhealey@gmail.com>2015-08-10 14:04:23 -0400
commit96ad8cb1140f5295551154920aa215527056559d (patch)
treea10920b35c966592f0dd499faddec6b36206072c /web
parentc9a1bf2d336cc5718cdf327f37cfdf87dc0e2705 (diff)
downloadchat-96ad8cb1140f5295551154920aa215527056559d.tar.gz
chat-96ad8cb1140f5295551154920aa215527056559d.tar.bz2
chat-96ad8cb1140f5295551154920aa215527056559d.zip
Changed file upload components to properly remove previews for failed uploads
Diffstat (limited to 'web')
-rw-r--r--web/react/components/create_comment.jsx19
-rw-r--r--web/react/components/create_post.jsx19
-rw-r--r--web/react/components/file_upload.jsx4
3 files changed, 36 insertions, 6 deletions
diff --git a/web/react/components/create_comment.jsx b/web/react/components/create_comment.jsx
index c16909b8b..4df6a1820 100644
--- a/web/react/components/create_comment.jsx
+++ b/web/react/components/create_comment.jsx
@@ -132,8 +132,23 @@ module.exports = React.createClass({
this.setState({uploadsInProgress: draft['uploadsInProgress'], previews: draft['previews']});
},
- handleUploadError: function(err) {
- this.setState({ server_error: err });
+ 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) {
+ draft['uploadsInProgress'].splice(index, 1);
+ }
+
+ PostStore.storeCommentDraft(this.props.rootId, draft);
+
+ this.setState({uploadsInProgress: draft['uploadsInProgress'], server_error: err});
},
clearPreviews: function() {
this.setState({previews: []});
diff --git a/web/react/components/create_post.jsx b/web/react/components/create_post.jsx
index a4107d4fc..55b2ae5c5 100644
--- a/web/react/components/create_post.jsx
+++ b/web/react/components/create_post.jsx
@@ -165,8 +165,23 @@ module.exports = React.createClass({
this.setState({uploadsInProgress: draft['uploadsInProgress'], previews: draft['previews']});
},
- handleUploadError: function(err) {
- this.setState({ server_error: err });
+ handleUploadError: function(err, clientId) {
+ var draft = PostStore.getDraft(this.state.channel_id);
+ if (!draft) {
+ draft = {};
+ draft['message'] = '';
+ draft['uploadsInProgress'] = [];
+ draft['previews'] = [];
+ }
+
+ var index = draft['uploadsInProgress'].indexOf(clientId);
+ if (index != -1) {
+ draft['uploadsInProgress'].splice(index, 1);
+ }
+
+ PostStore.storeDraft(this.state.channel_id, draft);
+
+ this.setState({uploadsInProgress: draft['uploadsInProgress'], server_error: err});
},
removePreview: function(id) {
var previews = this.state.previews;
diff --git a/web/react/components/file_upload.jsx b/web/react/components/file_upload.jsx
index 4b8965dcb..21e21a58a 100644
--- a/web/react/components/file_upload.jsx
+++ b/web/react/components/file_upload.jsx
@@ -60,7 +60,7 @@ module.exports = React.createClass({
this.setState({requests: requests});
}.bind(this),
function(err) {
- this.props.onUploadError(err);
+ this.props.onUploadError(err, clientId);
}.bind(this)
);
@@ -151,7 +151,7 @@ module.exports = React.createClass({
self.setState({requests: requests});
},
function(err) {
- self.props.onUploadError(err);
+ self.props.onUploadError(err, clientId);
}
);