From 26370f6eabe17744f8d23b5f815632cf7493387b Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Wed, 12 Jul 2017 17:37:04 -0400 Subject: PLT-7062 Moved emoji picker in RHS to attach to the body of the page (#6923) --- .../emoji_picker/emoji_picker_overlay.jsx | 17 +++++++----- webapp/components/rhs_comment.jsx | 30 +++++++++++----------- webapp/components/rhs_root_post.jsx | 6 ++--- webapp/components/rhs_thread/rhs_thread.jsx | 11 +------- 4 files changed, 30 insertions(+), 34 deletions(-) (limited to 'webapp') diff --git a/webapp/components/emoji_picker/emoji_picker_overlay.jsx b/webapp/components/emoji_picker/emoji_picker_overlay.jsx index 0a289a242..7174e004c 100644 --- a/webapp/components/emoji_picker/emoji_picker_overlay.jsx +++ b/webapp/components/emoji_picker/emoji_picker_overlay.jsx @@ -15,7 +15,15 @@ export default class EmojiPickerOverlay extends React.PureComponent { onEmojiClick: PropTypes.func.isRequired, onHide: PropTypes.func.isRequired, rightOffset: PropTypes.number, - topOffset: PropTypes.number + topOffset: PropTypes.number, + spaceRequiredAbove: PropTypes.number, + spaceRequiredBelow: PropTypes.number + } + + // Reasonable defaults calculated from from the center channel + static defaultProps = { + spaceRequiredAbove: 422, + spaceRequiredBelow: 436 } constructor(props) { @@ -28,15 +36,12 @@ export default class EmojiPickerOverlay extends React.PureComponent { componentWillUpdate(nextProps) { if (nextProps.show && !this.props.show) { - const spaceRequiredAbove = 422; - const spaceRequiredBelow = 436; - const targetBounds = nextProps.target().getBoundingClientRect(); let placement; - if (targetBounds.top > spaceRequiredAbove) { + if (targetBounds.top > nextProps.spaceRequiredAbove) { placement = 'top'; - } else if (window.innerHeight - targetBounds.bottom > spaceRequiredBelow) { + } else if (window.innerHeight - targetBounds.bottom > nextProps.spaceRequiredBelow) { placement = 'bottom'; } else { placement = 'left'; diff --git a/webapp/components/rhs_comment.jsx b/webapp/components/rhs_comment.jsx index 68190da98..568d85304 100644 --- a/webapp/components/rhs_comment.jsx +++ b/webapp/components/rhs_comment.jsx @@ -26,6 +26,19 @@ import {Link} from 'react-router/es6'; import {FormattedMessage} from 'react-intl'; export default class RhsComment extends React.Component { + static propTypes = { + post: PropTypes.object, + lastPostCount: PropTypes.number, + user: PropTypes.object.isRequired, + currentUser: PropTypes.object.isRequired, + compactDisplay: PropTypes.bool, + useMilitaryTime: PropTypes.bool.isRequired, + isFlagged: PropTypes.bool, + status: PropTypes.string, + isBusy: PropTypes.bool, + removePost: PropTypes.func.isRequired + }; + constructor(props) { super(props); @@ -332,9 +345,10 @@ export default class RhsComment extends React.Component { show={this.state.showEmojiPicker} onHide={this.toggleEmojiPicker} target={() => this.refs.dotMenu} - container={this.props.getPostList} onEmojiClick={this.reactEmojiClick} rightOffset={15} + spaceRequiredAbove={342} + spaceRequiredBelow={342} /> this.refs.dotMenu} - container={this.props.getPostList} onEmojiClick={this.reactEmojiClick} rightOffset={15} + spaceRequiredAbove={342} + spaceRequiredBelow={342} /> { - return this.refs.postListContainer; - } - getSidebarBody = () => { return this.refs.sidebarbody; } @@ -403,7 +399,6 @@ export default class RhsThread extends React.Component { isFlagged={isFlagged} status={status} isBusy={this.state.isBusy} - getPostList={this.getPostListContainer} removePost={this.props.actions.removePost} /> @@ -439,10 +434,7 @@ export default class RhsThread extends React.Component { renderView={renderView} onScroll={this.handleScroll} > -
+
@@ -458,7 +450,6 @@ export default class RhsThread extends React.Component { status={rootStatus} previewCollapsed={this.state.previewsCollapsed} isBusy={this.state.isBusy} - getPostList={this.getPostListContainer} />