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.
Этот коммит содержится в:
коммит произвёл
Corey Hulen
родитель
d5ae46c96c
Коммит
8aab290d10
@@ -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:
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user