From 0c910cc8c5a5487a129663431c6cd4d52640bd66 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Mon, 10 Jul 2017 17:35:50 -0400 Subject: Fix multiple pinned post issues (#6887) --- webapp/actions/post_actions.jsx | 20 ++++++++++++++++++++ webapp/components/dot_menu/index.js | 3 ++- webapp/components/sidebar_right/sidebar_right.jsx | 4 ++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/webapp/actions/post_actions.jsx b/webapp/actions/post_actions.jsx index 87d9ed739..a32fee616 100644 --- a/webapp/actions/post_actions.jsx +++ b/webapp/actions/post_actions.jsx @@ -329,3 +329,23 @@ export function searchForTerm(term) { 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 + }); + }; +} diff --git a/webapp/components/dot_menu/index.js b/webapp/components/dot_menu/index.js index eaa1e8d2c..852fe6791 100644 --- a/webapp/components/dot_menu/index.js +++ b/webapp/components/dot_menu/index.js @@ -3,7 +3,8 @@ import {connect} from 'react-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'; diff --git a/webapp/components/sidebar_right/sidebar_right.jsx b/webapp/components/sidebar_right/sidebar_right.jsx index 21d3df345..737254682 100644 --- a/webapp/components/sidebar_right/sidebar_right.jsx +++ b/webapp/components/sidebar_right/sidebar_right.jsx @@ -77,12 +77,12 @@ export default class SidebarRight extends React.Component { } 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) { const isOpen = this.state.searchVisible || this.props.postRightVisible; - const willOpen = nextState.searchVisible || nextState.postRightVisible; + const willOpen = nextState.searchVisible || nextProps.postRightVisible; if (!isOpen && willOpen) { trackEvent('ui', 'ui_rhs_opened'); -- cgit v1.2.3-1-g7c22