add IDs for reply arrows at center and RHS (#6311)
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
4f589e077c
Коммит
81b2fd9982
55
webapp/components/common/comment_icon.jsx
Обычный файл
55
webapp/components/common/comment_icon.jsx
Обычный файл
@@ -0,0 +1,55 @@
|
|||||||
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||||
|
// See License.txt for license information.
|
||||||
|
|
||||||
|
import React from 'react';
|
||||||
|
import Constants from 'utils/constants.jsx';
|
||||||
|
import * as Utils from 'utils/utils.jsx';
|
||||||
|
|
||||||
|
export default function CommentIcon(props) {
|
||||||
|
let commentCountSpan = '';
|
||||||
|
let iconStyle = 'comment-icon__container';
|
||||||
|
if (props.commentCount > 0) {
|
||||||
|
iconStyle += ' icon--show';
|
||||||
|
commentCountSpan = (
|
||||||
|
<span className='comment-count'>
|
||||||
|
{props.commentCount}
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
} else if (props.searchStyle !== '') {
|
||||||
|
iconStyle = iconStyle + ' ' + props.searchStyle;
|
||||||
|
}
|
||||||
|
|
||||||
|
let commentIconId = props.idPrefix;
|
||||||
|
if (props.idCount > -1) {
|
||||||
|
commentIconId += props.idCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<a
|
||||||
|
id={Utils.createSafeId(commentIconId)}
|
||||||
|
href='#'
|
||||||
|
className={iconStyle}
|
||||||
|
onClick={props.handleCommentClick}
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className='comment-icon'
|
||||||
|
dangerouslySetInnerHTML={{__html: Constants.REPLY_ICON}}
|
||||||
|
/>
|
||||||
|
{commentCountSpan}
|
||||||
|
</a>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
CommentIcon.propTypes = {
|
||||||
|
idPrefix: React.PropTypes.string.isRequired,
|
||||||
|
idCount: React.PropTypes.number,
|
||||||
|
handleCommentClick: React.PropTypes.func.isRequired,
|
||||||
|
searchStyle: React.PropTypes.string,
|
||||||
|
commentCount: React.PropTypes.number
|
||||||
|
};
|
||||||
|
|
||||||
|
CommentIcon.defaultProps = {
|
||||||
|
idCount: -1,
|
||||||
|
searchStyle: '',
|
||||||
|
commentCount: 0
|
||||||
|
};
|
||||||
@@ -9,6 +9,7 @@ import PostFlagIcon from 'components/common/post_flag_icon.jsx';
|
|||||||
|
|
||||||
import * as GlobalActions from 'actions/global_actions.jsx';
|
import * as GlobalActions from 'actions/global_actions.jsx';
|
||||||
import * as PostActions from 'actions/post_actions.jsx';
|
import * as PostActions from 'actions/post_actions.jsx';
|
||||||
|
import CommentIcon from 'components/common/comment_icon.jsx';
|
||||||
|
|
||||||
import * as Utils from 'utils/utils.jsx';
|
import * as Utils from 'utils/utils.jsx';
|
||||||
import * as PostUtils from 'utils/post_utils.jsx';
|
import * as PostUtils from 'utils/post_utils.jsx';
|
||||||
@@ -342,30 +343,13 @@ export default class PostInfo extends React.Component {
|
|||||||
let comments = null;
|
let comments = null;
|
||||||
let react = null;
|
let react = null;
|
||||||
if (!isEphemeral && !isPending && !isSystemMessage) {
|
if (!isEphemeral && !isPending && !isSystemMessage) {
|
||||||
let showCommentClass;
|
|
||||||
let commentCountText;
|
|
||||||
if (this.props.commentCount >= 1) {
|
|
||||||
showCommentClass = ' icon--show';
|
|
||||||
commentCountText = this.props.commentCount;
|
|
||||||
} else {
|
|
||||||
showCommentClass = '';
|
|
||||||
commentCountText = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
comments = (
|
comments = (
|
||||||
<a
|
<CommentIcon
|
||||||
href='#'
|
idPrefix={'commentIcon'}
|
||||||
className={'comment-icon__container' + showCommentClass}
|
idCount={idCount}
|
||||||
onClick={this.props.handleCommentClick}
|
handleCommentClick={this.props.handleCommentClick}
|
||||||
>
|
commentCount={this.props.commentCount}
|
||||||
<span
|
/>
|
||||||
className='comment-icon'
|
|
||||||
dangerouslySetInnerHTML={{__html: Constants.REPLY_ICON}}
|
|
||||||
/>
|
|
||||||
<span className='comment-count'>
|
|
||||||
{commentCountText}
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMOJI_PICKER_PREVIEW)) {
|
if (Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMOJI_PICKER_PREVIEW)) {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import PostMessageContainer from 'components/post_view/components/post_message_c
|
|||||||
import UserProfile from './user_profile.jsx';
|
import UserProfile from './user_profile.jsx';
|
||||||
import FileAttachmentListContainer from './file_attachment_list_container.jsx';
|
import FileAttachmentListContainer from './file_attachment_list_container.jsx';
|
||||||
import ProfilePicture from './profile_picture.jsx';
|
import ProfilePicture from './profile_picture.jsx';
|
||||||
|
import CommentIcon from 'components/common/comment_icon.jsx';
|
||||||
|
|
||||||
import TeamStore from 'stores/team_store.jsx';
|
import TeamStore from 'stores/team_store.jsx';
|
||||||
import UserStore from 'stores/user_store.jsx';
|
import UserStore from 'stores/user_store.jsx';
|
||||||
@@ -200,16 +201,12 @@ export default class SearchResultsItem extends React.Component {
|
|||||||
|
|
||||||
rhsControls = (
|
rhsControls = (
|
||||||
<li className='col__controls'>
|
<li className='col__controls'>
|
||||||
<a
|
<CommentIcon
|
||||||
href='#'
|
idPrefix={'searchCommentIcon'}
|
||||||
className='comment-icon__container search-item__comment'
|
idCount={idCount}
|
||||||
onClick={this.handleFocusRHSClick}
|
handleCommentClick={this.handleFocusRHSClick}
|
||||||
>
|
searchStyle={'search-item__comment'}
|
||||||
<span
|
/>
|
||||||
className='comment-icon'
|
|
||||||
dangerouslySetInnerHTML={{__html: Constants.REPLY_ICON}}
|
|
||||||
/>
|
|
||||||
</a>
|
|
||||||
<a
|
<a
|
||||||
onClick={
|
onClick={
|
||||||
() => {
|
() => {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user