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.
Этот коммит содержится в:
VeraLyu
2017-04-13 04:23:33 +08:00
коммит произвёл Harrison Healey
родитель a10ad339d1
Коммит 03502cf73b
2 изменённых файлов: 26 добавлений и 2 удалений

Просмотреть файл

@@ -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(); var SearchStore = new SearchStoreClass();
@@ -140,6 +154,14 @@ SearchStore.dispatchToken = AppDispatcher.register((payload) => {
SearchStore.deletePost(action.post); SearchStore.deletePost(action.post);
SearchStore.emitSearchChange(); SearchStore.emitSearchChange();
break; 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: default:
} }
}); });

Просмотреть файл

@@ -1606,7 +1606,8 @@ export function pinPost(channelId, reaction) {
// the "post_edited" websocket event take cares of updating the posts // the "post_edited" websocket event take cares of updating the posts
// the action below is mostly dispatched for the RHS to update // the action below is mostly dispatched for the RHS to update
AppDispatcher.handleServerAction({ AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVED_POST_PINNED type: ActionTypes.RECEIVED_POST_PINNED,
reaction
}); });
}, },
(err) => { (err) => {
@@ -1623,7 +1624,8 @@ export function unpinPost(channelId, reaction) {
// the "post_edited" websocket event take cares of updating the posts // the "post_edited" websocket event take cares of updating the posts
// the action below is mostly dispatched for the RHS to update // the action below is mostly dispatched for the RHS to update
AppDispatcher.handleServerAction({ AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVED_POST_UNPINNED type: ActionTypes.RECEIVED_POST_UNPINNED,
reaction
}); });
}, },
(err) => { (err) => {