diff --git a/webapp/components/post_view/components/post.jsx b/webapp/components/post_view/components/post.jsx index 0a4840050b..21d335a516 100644 --- a/webapp/components/post_view/components/post.jsx +++ b/webapp/components/post_view/components/post.jsx @@ -18,9 +18,12 @@ export default class Post extends React.Component { super(props); this.handleCommentClick = this.handleCommentClick.bind(this); + this.handleDropdownOpened = this.handleDropdownOpened.bind(this); this.forceUpdateInfo = this.forceUpdateInfo.bind(this); - this.state = {}; + this.state = { + dropdownOpened: false + }; } handleCommentClick(e) { e.preventDefault(); @@ -35,11 +38,16 @@ export default class Post extends React.Component { results: null }); } + handleDropdownOpened(opened) { + this.setState({ + dropdownOpened: opened + }); + } forceUpdateInfo() { this.refs.info.forceUpdate(); this.refs.header.forceUpdate(); } - shouldComponentUpdate(nextProps) { + shouldComponentUpdate(nextProps, nextState) { if (!Utils.areObjectsEqual(nextProps.post, this.props.post)) { return true; } @@ -88,6 +96,14 @@ export default class Post extends React.Component { return true; } + if (nextProps.emojis !== this.props.emojis) { + return true; + } + + if (nextState.dropdownOpened !== this.state.dropdownOpened) { + return true; + } + return false; } render() { @@ -187,11 +203,16 @@ export default class Post extends React.Component { profilePicContainer = ''; } + let dropdownOpenedClass = ''; + if (this.state.dropdownOpened) { + dropdownOpenedClass = 'post--hovered'; + } + return (