diff --git a/actions/post_actions.jsx b/actions/post_actions.jsx index 43204a5431e8..87d9ed739b44 100644 --- a/actions/post_actions.jsx +++ b/actions/post_actions.jsx @@ -14,6 +14,8 @@ import {sendDesktopNotification} from 'actions/notification_actions.jsx'; import Constants from 'utils/constants.jsx'; const ActionTypes = Constants.ActionTypes; +import {browserHistory} from 'react-router/es6'; + // Redux actions import store from 'stores/redux_store.jsx'; const dispatch = store.dispatch; @@ -236,6 +238,12 @@ export function deletePost(channelId, post, success) { data: post }); + const {focusedPostId} = getState().views.channel; + const channel = getState().entities.channels.channels[post.channel_id]; + if (post.id === focusedPostId && channel) { + browserHistory.push(TeamStore.getCurrentTeamRelativeUrl() + '/channels/' + channel.name); + } + if (success) { success(); } diff --git a/reducers/views/channel.js b/reducers/views/channel.js index 0deb2389efdd..1da6c2e29261 100644 --- a/reducers/views/channel.js +++ b/reducers/views/channel.js @@ -62,8 +62,20 @@ function loadingPosts(state = {}, action) { } } +function focusedPostId(state = '', action) { + switch (action.type) { + case ActionTypes.RECEIVED_FOCUSED_POST: + return action.data; + case ChannelTypes.SELECT_CHANNEL: + return ''; + default: + return state; + } +} + export default combineReducers({ postVisibility, lastChannelViewTime, - loadingPosts + loadingPosts, + focusedPostId });