diff options
author | JoramWilander <jwawilander@gmail.com> | 2015-07-23 09:39:29 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2015-08-18 08:58:02 -0400 |
commit | 32f7b50bb5c62d27def3f2e6d2839511c0b8f9a9 (patch) | |
tree | 1203fd854bf7ea843a35ce52382b0846ffa3873a /web/react/components/create_post.jsx | |
parent | 4805608cc9cf79277f37b94bbe38398816469884 (diff) | |
download | chat-32f7b50bb5c62d27def3f2e6d2839511c0b8f9a9.tar.gz chat-32f7b50bb5c62d27def3f2e6d2839511c0b8f9a9.tar.bz2 chat-32f7b50bb5c62d27def3f2e6d2839511c0b8f9a9.zip |
adds predictive posting on the client
Diffstat (limited to 'web/react/components/create_post.jsx')
-rw-r--r-- | web/react/components/create_post.jsx | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/web/react/components/create_post.jsx b/web/react/components/create_post.jsx index 377e7bd34..76f2bf262 100644 --- a/web/react/components/create_post.jsx +++ b/web/react/components/create_post.jsx @@ -65,10 +65,17 @@ module.exports = React.createClass({ post.channel_id = this.state.channelId; post.filenames = this.state.previews; - client.createPost(post, ChannelStore.getCurrent(), + var time = utils.getTimestamp(); + post.pending_post_id = user_id + ":"+ time; + post.user_id = user_id; + post.create_at = time; + post.root_id = this.state.rootId; + post.parent_id = this.state.parentId; + + var channel = ChannelStore.getCurrent(); + + client.createPost(post, channel, function(data) { - PostStore.storeDraft(data.channel_id, null); - this.setState({messageText: '', submitting: false, postError: null, previews: [], serverError: null}); this.resizePostHolder(); AsyncClient.getPosts(true); @@ -79,13 +86,25 @@ module.exports = React.createClass({ ChannelStore.setChannelMember(member); }.bind(this), function(err) { - var state = {}; - state.serverError = err.message; + var state = {} + + if (err.message === "Invalid RootId parameter") { + if ($('#post_deleted').length > 0) $('#post_deleted').modal('show'); + PostStore.removePendingPost(post.pending_post_id); + } else { + post.did_fail = true; + PostStore.updatePendingPost(post); + } state.submitting = false; this.setState(state); }.bind(this) ); + + post.is_loading = true; + PostStore.storePendingPost(post); + PostStore.storeDraft(channel.id, user_id, null); + this.setState({messageText: '', submitting: false, postError: null, previews: [], serverError: null}); } $('.post-list-holder-by-time').perfectScrollbar('update'); |