PLT-6240: Remove own pinned post from RHS when removed from channel (#6098)

Dispatch REMOVE_POST event after successfully initiating delete post,
others get informed by websocket event and will mark the msg as deleted
but not delete from RHS.
Этот коммит содержится в:
VeraLyu
2017-04-18 23:47:27 +08:00
коммит произвёл Corey Hulen
родитель d5ae46c96c
Коммит 8aab290d10
2 изменённых файлов: 19 добавлений и 6 удалений

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

@@ -11,6 +11,7 @@ import {loadStatusesForChannel} from 'actions/status_actions.jsx';
import {loadNewDMIfNeeded, loadNewGMIfNeeded} from 'actions/user_actions.jsx'; import {loadNewDMIfNeeded, loadNewGMIfNeeded} from 'actions/user_actions.jsx';
import {trackEvent} from 'actions/diagnostics_actions.jsx'; import {trackEvent} from 'actions/diagnostics_actions.jsx';
import {sendDesktopNotification} from 'actions/notification_actions.jsx'; import {sendDesktopNotification} from 'actions/notification_actions.jsx';
import * as GlobalActions from 'actions/global_actions.jsx';
import Client from 'client/web_client.jsx'; import Client from 'client/web_client.jsx';
import * as AsyncClient from 'utils/async_client.jsx'; import * as AsyncClient from 'utils/async_client.jsx';
@@ -431,11 +432,6 @@ export function updatePost(post, success, isPost) {
}); });
} }
export function removePostFromStore(post) {
PostStore.removePost(post);
PostStore.emitChange();
}
export function emitEmojiPosted(emoji) { export function emitEmojiPosted(emoji) {
AppDispatcher.handleServerAction({ AppDispatcher.handleServerAction({
type: ActionTypes.EMOJI_POSTED, type: ActionTypes.EMOJI_POSTED,
@@ -448,7 +444,7 @@ export function deletePost(channelId, post, success, error) {
channelId, channelId,
post.id, post.id,
() => { () => {
removePostFromStore(post); GlobalActions.emitRemovePost(post);
if (post.id === PostStore.getSelectedPostId()) { if (post.id === PostStore.getSelectedPostId()) {
AppDispatcher.handleServerAction({ AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVED_POST_SELECTED, type: ActionTypes.RECEIVED_POST_SELECTED,

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

@@ -133,6 +133,19 @@ class SearchStoreClass extends EventEmitter {
}); });
} }
} }
removePost(post) {
const results = this.getSearchResults();
if (results == null) {
return;
}
const index = results.order.indexOf(post.id);
if (index > -1) {
delete results.posts[post.id];
results.order.splice(index, 1);
}
}
} }
var SearchStore = new SearchStoreClass(); var SearchStore = new SearchStoreClass();
@@ -171,6 +184,10 @@ SearchStore.dispatchToken = AppDispatcher.register((payload) => {
SearchStore.togglePinPost(action.reaction, false); SearchStore.togglePinPost(action.reaction, false);
SearchStore.emitSearchChange(); SearchStore.emitSearchChange();
break; break;
case ActionTypes.REMOVE_POST:
SearchStore.removePost(action.post);
SearchStore.emitSearchChange();
break;
default: default:
} }
}); });