From f27aca4b73119078f82cb86ddf6cae3ec5ccdf68 Mon Sep 17 00:00:00 2001
From: Carlos Tadeu Panato Junior <ctadeu@gmail.com>
Date: Mon, 5 Dec 2016 18:59:12 +0100
Subject: Move instances of Client.createPost() in components to an action
 (#4639)

* Move instances of Client.createPost() in components to an action

* update per review, waiting for more review and see if this is the right way

* update per code review

* update code

* remove comment per request
---
 webapp/actions/post_actions.jsx | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

(limited to 'webapp/actions/post_actions.jsx')

diff --git a/webapp/actions/post_actions.jsx b/webapp/actions/post_actions.jsx
index 4f861c909..736aef033 100644
--- a/webapp/actions/post_actions.jsx
+++ b/webapp/actions/post_actions.jsx
@@ -272,3 +272,37 @@ export function removeReaction(channelId, postId, emojiName) {
 
     AsyncClient.deleteReaction(channelId, reaction);
 }
+
+export function createPost(post, doLoadPost, success, error) {
+    Client.createPost(post,
+        (data) => {
+            if (doLoadPost) {
+                loadPosts(post.channel_id);
+            } else {
+                PostStore.removePendingPost(post.pending_post_id);
+            }
+
+            AppDispatcher.handleServerAction({
+                type: ActionTypes.RECEIVED_POST,
+                post: data
+            });
+
+            if (success) {
+                success(data);
+            }
+        },
+
+        (err) => {
+            if (err.id === 'api.post.create_post.root_id.app_error') {
+                PostStore.removePendingPost(post.pending_post_id);
+            } else {
+                post.state = Constants.POST_FAILED;
+                PostStore.updatePendingPost(post);
+            }
+
+            if (error) {
+                error(err);
+            }
+        }
+    );
+}
-- 
cgit v1.2.3-1-g7c22

