MM-52082 : Emoji Picker doesn't appear when clicking on Add Reaction from post menu in mobile view (#23174)
Этот коммит содержится в:
@@ -10,15 +10,18 @@ import {Constants} from 'utils/constants';
|
|||||||
|
|
||||||
import {Emoji} from '@mattermost/types/emojis';
|
import {Emoji} from '@mattermost/types/emojis';
|
||||||
|
|
||||||
import EmojiPickerTabs from './emoji_picker_tabs';
|
import EmojiPickerTabs from '../emoji_picker_tabs';
|
||||||
|
|
||||||
type Props = {
|
import type {PropsFromRedux} from './index';
|
||||||
show: boolean;
|
|
||||||
|
export interface Props extends PropsFromRedux {
|
||||||
container?: () => ReactNode;
|
container?: () => ReactNode;
|
||||||
target: () => ReactNode;
|
target: () => ReactNode;
|
||||||
onEmojiClick: (emoji: Emoji) => void;
|
onEmojiClick: (emoji: Emoji) => void;
|
||||||
onGifClick?: (gif: string) => void;
|
onGifClick?: (gif: string) => void;
|
||||||
onHide: () => void;
|
onHide: () => void;
|
||||||
|
onExited?: () => void;
|
||||||
|
show: boolean;
|
||||||
topOffset?: number;
|
topOffset?: number;
|
||||||
rightOffset?: number;
|
rightOffset?: number;
|
||||||
leftOffset?: number;
|
leftOffset?: number;
|
||||||
@@ -26,7 +29,6 @@ type Props = {
|
|||||||
spaceRequiredBelow?: number;
|
spaceRequiredBelow?: number;
|
||||||
enableGifPicker?: boolean;
|
enableGifPicker?: boolean;
|
||||||
defaultHorizontalPosition?: 'left' | 'right';
|
defaultHorizontalPosition?: 'left' | 'right';
|
||||||
onExited?: () => void;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class EmojiPickerOverlay extends React.PureComponent<Props> {
|
export default class EmojiPickerOverlay extends React.PureComponent<Props> {
|
||||||
@@ -79,8 +81,7 @@ export default class EmojiPickerOverlay extends React.PureComponent<Props> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {target, rightOffset, spaceRequiredAbove, spaceRequiredBelow, defaultHorizontalPosition, show} = this.props;
|
const {target, rightOffset, spaceRequiredAbove, spaceRequiredBelow, defaultHorizontalPosition, show, isMobileView} = this.props;
|
||||||
|
|
||||||
const calculatedRightOffset = typeof rightOffset === 'undefined' ? this.emojiPickerPosition(target(), show) : rightOffset;
|
const calculatedRightOffset = typeof rightOffset === 'undefined' ? this.emojiPickerPosition(target(), show) : rightOffset;
|
||||||
const placement = this.getPlacement(target(), spaceRequiredAbove, spaceRequiredBelow, defaultHorizontalPosition, show);
|
const placement = this.getPlacement(target(), spaceRequiredAbove, spaceRequiredBelow, defaultHorizontalPosition, show);
|
||||||
|
|
||||||
@@ -88,7 +89,7 @@ export default class EmojiPickerOverlay extends React.PureComponent<Props> {
|
|||||||
<Overlay
|
<Overlay
|
||||||
show={show}
|
show={show}
|
||||||
placement={placement}
|
placement={placement}
|
||||||
rootClose={true}
|
rootClose={!isMobileView}
|
||||||
container={this.props.container}
|
container={this.props.container}
|
||||||
onHide={this.props.onHide}
|
onHide={this.props.onHide}
|
||||||
target={target}
|
target={target}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||||
|
// See LICENSE.txt for license information.
|
||||||
|
|
||||||
|
import {connect, ConnectedProps} from 'react-redux';
|
||||||
|
|
||||||
|
import {GlobalState} from 'types/store';
|
||||||
|
|
||||||
|
import {getIsMobileView} from 'selectors/views/browser';
|
||||||
|
|
||||||
|
import EmojiPickerOverlay from './emoji_picker_overlay';
|
||||||
|
|
||||||
|
function mapStateToProps(state: GlobalState) {
|
||||||
|
return {
|
||||||
|
isMobileView: getIsMobileView(state),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const connector = connect(mapStateToProps);
|
||||||
|
|
||||||
|
export type PropsFromRedux = ConnectedProps<typeof connector>;
|
||||||
|
|
||||||
|
export default connector(EmojiPickerOverlay);
|
||||||
@@ -10,13 +10,10 @@ exports[`components/post_view/PostReaction should match snapshot 1`] = `
|
|||||||
}
|
}
|
||||||
teamId="current_team_id"
|
teamId="current_team_id"
|
||||||
>
|
>
|
||||||
<EmojiPickerOverlay
|
<Connect(EmojiPickerOverlay)
|
||||||
enableGifPicker={false}
|
|
||||||
onEmojiClick={[Function]}
|
onEmojiClick={[Function]}
|
||||||
onHide={[MockFunction]}
|
onHide={[MockFunction]}
|
||||||
show={false}
|
show={false}
|
||||||
spaceRequiredAbove={476}
|
|
||||||
spaceRequiredBelow={497}
|
|
||||||
target={[MockFunction]}
|
target={[MockFunction]}
|
||||||
topOffset={-7}
|
topOffset={-7}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -54,14 +54,11 @@ exports[`components/ReactionList should render when there are reactions 1`] = `
|
|||||||
<span
|
<span
|
||||||
className="emoji-picker__container"
|
className="emoji-picker__container"
|
||||||
>
|
>
|
||||||
<EmojiPickerOverlay
|
<Connect(EmojiPickerOverlay)
|
||||||
enableGifPicker={false}
|
|
||||||
onEmojiClick={[Function]}
|
onEmojiClick={[Function]}
|
||||||
onHide={[Function]}
|
onHide={[Function]}
|
||||||
rightOffset={15}
|
rightOffset={15}
|
||||||
show={false}
|
show={false}
|
||||||
spaceRequiredAbove={476}
|
|
||||||
spaceRequiredBelow={497}
|
|
||||||
target={[Function]}
|
target={[Function]}
|
||||||
topOffset={-5}
|
topOffset={-5}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user