diff options
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/stores/search_store.jsx | 22 | ||||
-rw-r--r-- | webapp/utils/async_client.jsx | 6 |
2 files changed, 26 insertions, 2 deletions
diff --git a/webapp/stores/search_store.jsx b/webapp/stores/search_store.jsx index d94c48f8a..97e6a3b85 100644 --- a/webapp/stores/search_store.jsx +++ b/webapp/stores/search_store.jsx @@ -117,6 +117,20 @@ class SearchStoreClass extends EventEmitter { }); } } + + togglePinPost(postId, isPinned) { + const results = this.getSearchResults(); + if (results == null) { + return; + } + + if (postId in results.posts) { + const post = results.posts[postId]; + results.posts[postId] = Object.assign({}, post, { + is_pinned: isPinned + }); + } + } } var SearchStore = new SearchStoreClass(); @@ -140,6 +154,14 @@ SearchStore.dispatchToken = AppDispatcher.register((payload) => { SearchStore.deletePost(action.post); SearchStore.emitSearchChange(); break; + case ActionTypes.RECEIVED_POST_PINNED: + SearchStore.togglePinPost(action.reaction, true); + SearchStore.emitSearchChange(); + break; + case ActionTypes.RECEIVED_POST_UNPINNED: + SearchStore.togglePinPost(action.reaction, false); + SearchStore.emitSearchChange(); + break; default: } }); diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx index 25c043b63..abc1017fa 100644 --- a/webapp/utils/async_client.jsx +++ b/webapp/utils/async_client.jsx @@ -1606,7 +1606,8 @@ export function pinPost(channelId, reaction) { // the "post_edited" websocket event take cares of updating the posts // the action below is mostly dispatched for the RHS to update AppDispatcher.handleServerAction({ - type: ActionTypes.RECEIVED_POST_PINNED + type: ActionTypes.RECEIVED_POST_PINNED, + reaction }); }, (err) => { @@ -1623,7 +1624,8 @@ export function unpinPost(channelId, reaction) { // the "post_edited" websocket event take cares of updating the posts // the action below is mostly dispatched for the RHS to update AppDispatcher.handleServerAction({ - type: ActionTypes.RECEIVED_POST_UNPINNED + type: ActionTypes.RECEIVED_POST_UNPINNED, + reaction }); }, (err) => { |