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.
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
a10ad339d1
Коммит
03502cf73b
@@ -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) => {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user