diff options
author | VeraLyu <lvroyce0210@gmail.com> | 2017-04-13 04:23:33 +0800 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-04-12 16:23:33 -0400 |
commit | 03502cf73b8513a40877b1ac5726523974661d4d (patch) | |
tree | dae083a00534cfcc4dc9f52ebb533d82a9a17de5 /webapp/stores/search_store.jsx | |
parent | a10ad339d10a78779d0eefce6c4e94a0836bc6f4 (diff) | |
download | chat-03502cf73b8513a40877b1ac5726523974661d4d.tar.gz chat-03502cf73b8513a40877b1ac5726523974661d4d.tar.bz2 chat-03502cf73b8513a40877b1ac5726523974661d4d.zip |
PLT-6155: Keep pin badges in RHS consistent with that in center (#6018)
Sync search store when recieving pin/unpin event to keep pin
badges in RHS consistent with that in center channel.
Diffstat (limited to 'webapp/stores/search_store.jsx')
-rw-r--r-- | webapp/stores/search_store.jsx | 22 |
1 files changed, 22 insertions, 0 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: } }); |