Fix multiple pinned post issues (#6887)

This commit is contained in:
Joram Wilander
2017-07-10 17:35:50 -04:00
committed by Saturnino Abril
parent 2190a288e0
commit 0c910cc8c5
3 changed files with 24 additions and 3 deletions

View File

@@ -329,3 +329,23 @@ export function searchForTerm(term) {
do_search: true do_search: true
}); });
} }
export function pinPost(postId) {
return async (doDispatch, doGetState) => {
await PostActions.pinPost(postId)(doDispatch, doGetState);
AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVED_POST_PINNED
});
};
}
export function unpinPost(postId) {
return async (doDispatch, doGetState) => {
await PostActions.unpinPost(postId)(doDispatch, doGetState);
AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVED_POST_UNPINNED
});
};
}

View File

@@ -3,7 +3,8 @@
import {connect} from 'react-redux'; import {connect} from 'react-redux';
import {bindActionCreators} from 'redux'; import {bindActionCreators} from 'redux';
import {flagPost, unflagPost, pinPost, unpinPost} from 'mattermost-redux/actions/posts'; import {flagPost, unflagPost} from 'mattermost-redux/actions/posts';
import {pinPost, unpinPost} from 'actions/post_actions.jsx';
import DotMenu from './dot_menu.jsx'; import DotMenu from './dot_menu.jsx';

View File

@@ -77,12 +77,12 @@ export default class SidebarRight extends React.Component {
} }
shouldComponentUpdate(nextProps, nextState) { shouldComponentUpdate(nextProps, nextState) {
return !Utils.areObjectsEqual(nextState, this.state) || !Utils.areObjectsEqual(nextProps, this.props); return !Utils.areObjectsEqual(nextState, this.state) || this.props.postRightVisible !== nextProps.postRightVisible;
} }
componentWillUpdate(nextProps, nextState) { componentWillUpdate(nextProps, nextState) {
const isOpen = this.state.searchVisible || this.props.postRightVisible; const isOpen = this.state.searchVisible || this.props.postRightVisible;
const willOpen = nextState.searchVisible || nextState.postRightVisible; const willOpen = nextState.searchVisible || nextProps.postRightVisible;
if (!isOpen && willOpen) { if (!isOpen && willOpen) {
trackEvent('ui', 'ui_rhs_opened'); trackEvent('ui', 'ui_rhs_opened');