PLT-6201/PLT-6220 Don't show pin or reaction options for system messages (#6010)
* PLT-6220 Removed ability to react to system messages * PLT-6201 Removed ability to pin system messages
Этот коммит содержится в:
коммит произвёл
George Goldberg
родитель
86fbd496af
Коммит
63c122bc02
@@ -82,7 +82,6 @@ export default class PostHeader extends React.Component {
|
|||||||
commentCount={this.props.commentCount}
|
commentCount={this.props.commentCount}
|
||||||
handleCommentClick={this.props.handleCommentClick}
|
handleCommentClick={this.props.handleCommentClick}
|
||||||
handleDropdownOpened={this.props.handleDropdownOpened}
|
handleDropdownOpened={this.props.handleDropdownOpened}
|
||||||
allowReply={!isSystemMessage}
|
|
||||||
isLastComment={this.props.isLastComment}
|
isLastComment={this.props.isLastComment}
|
||||||
sameUser={this.props.sameUser}
|
sameUser={this.props.sameUser}
|
||||||
currentUser={this.props.currentUser}
|
currentUser={this.props.currentUser}
|
||||||
|
|||||||
@@ -63,13 +63,8 @@ export default class PostInfo extends React.Component {
|
|||||||
$('#post_dropdown' + this.props.post.id).on('hidden.bs.dropdown', () => this.props.handleDropdownOpened(false));
|
$('#post_dropdown' + this.props.post.id).on('hidden.bs.dropdown', () => this.props.handleDropdownOpened(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
createDropdown() {
|
createDropdown(isSystemMessage) {
|
||||||
const post = this.props.post;
|
const post = this.props.post;
|
||||||
const isSystemMessage = PostUtils.isSystemMessage(post);
|
|
||||||
|
|
||||||
if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
var type = 'Post';
|
var type = 'Post';
|
||||||
if (post.root_id && post.root_id.length > 0) {
|
if (post.root_id && post.root_id.length > 0) {
|
||||||
@@ -82,7 +77,7 @@ export default class PostInfo extends React.Component {
|
|||||||
dataComments = this.props.commentCount;
|
dataComments = this.props.commentCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.props.allowReply) {
|
if (!isSystemMessage) {
|
||||||
dropdownContents.push(
|
dropdownContents.push(
|
||||||
<li
|
<li
|
||||||
key='replyLink'
|
key='replyLink'
|
||||||
@@ -157,42 +152,42 @@ export default class PostInfo extends React.Component {
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
if (this.props.post.is_pinned) {
|
if (this.props.post.is_pinned) {
|
||||||
dropdownContents.push(
|
dropdownContents.push(
|
||||||
<li
|
<li
|
||||||
key='unpinLink'
|
key='unpinLink'
|
||||||
role='presentation'
|
role='presentation'
|
||||||
>
|
|
||||||
<a
|
|
||||||
href='#'
|
|
||||||
onClick={this.unpinPost}
|
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<a
|
||||||
id='post_info.unpin'
|
href='#'
|
||||||
defaultMessage='Un-pin from channel'
|
onClick={this.unpinPost}
|
||||||
/>
|
>
|
||||||
</a>
|
<FormattedMessage
|
||||||
</li>
|
id='post_info.unpin'
|
||||||
);
|
defaultMessage='Un-pin from channel'
|
||||||
} else {
|
/>
|
||||||
dropdownContents.push(
|
</a>
|
||||||
<li
|
</li>
|
||||||
key='pinLink'
|
);
|
||||||
role='presentation'
|
} else {
|
||||||
>
|
dropdownContents.push(
|
||||||
<a
|
<li
|
||||||
href='#'
|
key='pinLink'
|
||||||
onClick={this.pinPost}
|
role='presentation'
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<a
|
||||||
id='post_info.pin'
|
href='#'
|
||||||
defaultMessage='Pin to channel'
|
onClick={this.pinPost}
|
||||||
/>
|
>
|
||||||
</a>
|
<FormattedMessage
|
||||||
</li>
|
id='post_info.pin'
|
||||||
);
|
defaultMessage='Pin to channel'
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.canDelete) {
|
if (this.canDelete) {
|
||||||
@@ -331,21 +326,28 @@ export default class PostInfo extends React.Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
var post = this.props.post;
|
var post = this.props.post;
|
||||||
var comments = '';
|
|
||||||
var showCommentClass = '';
|
|
||||||
var commentCountText = this.props.commentCount;
|
|
||||||
const flagIcon = Constants.FLAG_ICON_SVG;
|
const flagIcon = Constants.FLAG_ICON_SVG;
|
||||||
|
|
||||||
this.canDelete = PostUtils.canDeletePost(post);
|
this.canDelete = PostUtils.canDeletePost(post);
|
||||||
this.canEdit = PostUtils.canEditPost(post, this.editDisableAction);
|
this.canEdit = PostUtils.canEditPost(post, this.editDisableAction);
|
||||||
|
|
||||||
if (this.props.commentCount >= 1) {
|
const isEphemeral = Utils.isPostEphemeral(post);
|
||||||
showCommentClass = ' icon--show';
|
const isPending = post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING;
|
||||||
} else {
|
const isSystemMessage = PostUtils.isSystemMessage(post);
|
||||||
commentCountText = '';
|
|
||||||
}
|
let comments = null;
|
||||||
|
let react = null;
|
||||||
|
if (!isEphemeral && !isPending && !isSystemMessage) {
|
||||||
|
let showCommentClass;
|
||||||
|
let commentCountText;
|
||||||
|
if (this.props.commentCount >= 1) {
|
||||||
|
showCommentClass = ' icon--show';
|
||||||
|
commentCountText = this.props.commentCount;
|
||||||
|
} else {
|
||||||
|
showCommentClass = '';
|
||||||
|
commentCountText = '';
|
||||||
|
}
|
||||||
|
|
||||||
if (post.state !== Constants.POST_FAILED && post.state !== Constants.POST_LOADING && !Utils.isPostEphemeral(post) && this.props.allowReply) {
|
|
||||||
comments = (
|
comments = (
|
||||||
<a
|
<a
|
||||||
href='#'
|
href='#'
|
||||||
@@ -361,51 +363,48 @@ export default class PostInfo extends React.Component {
|
|||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
let react;
|
if (Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMOJI_PICKER_PREVIEW)) {
|
||||||
if (post.state !== Constants.POST_FAILED &&
|
react = (
|
||||||
post.state !== Constants.POST_LOADING &&
|
<span>
|
||||||
!Utils.isPostEphemeral(post) &&
|
<Overlay
|
||||||
Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMOJI_PICKER_PREVIEW)) {
|
show={this.state.showEmojiPicker}
|
||||||
react = (
|
placement='top'
|
||||||
<span>
|
rootClose={true}
|
||||||
<Overlay
|
container={this}
|
||||||
show={this.state.showEmojiPicker}
|
onHide={() => this.setState({showEmojiPicker: false})}
|
||||||
placement='top'
|
target={() => ReactDOM.findDOMNode(this.refs['reactIcon_' + post.id])}
|
||||||
rootClose={true}
|
|
||||||
container={this}
|
|
||||||
onHide={() => this.setState({showEmojiPicker: false})}
|
|
||||||
target={() => ReactDOM.findDOMNode(this.refs['reactIcon_' + post.id])}
|
|
||||||
|
|
||||||
>
|
>
|
||||||
<EmojiPicker
|
<EmojiPicker
|
||||||
onEmojiClick={this.reactEmojiClick}
|
onEmojiClick={this.reactEmojiClick}
|
||||||
pickerLocation='top'
|
pickerLocation='top'
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
<a
|
<a
|
||||||
href='#'
|
href='#'
|
||||||
className='reacticon__container'
|
className='reacticon__container'
|
||||||
onClick={this.emojiPickerClick}
|
onClick={this.emojiPickerClick}
|
||||||
ref={'reactIcon_' + post.id}
|
ref={'reactIcon_' + post.id}
|
||||||
><i className='fa fa-smile-o'/>
|
><i className='fa fa-smile-o'/>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let options;
|
let options;
|
||||||
if (Utils.isPostEphemeral(post)) {
|
if (isEphemeral) {
|
||||||
options = (
|
options = (
|
||||||
<li className='col col__remove'>
|
<li className='col col__remove'>
|
||||||
{this.createRemovePostButton()}
|
{this.createRemovePostButton()}
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
} else {
|
} else if (!isPending) {
|
||||||
const dropdown = this.createDropdown();
|
const dropdown = this.createDropdown(isSystemMessage);
|
||||||
|
|
||||||
if (dropdown) {
|
if (dropdown) {
|
||||||
options = (
|
options = (
|
||||||
<li className='col col__reply'>
|
<li className='col col__reply'>
|
||||||
@@ -461,7 +460,7 @@ export default class PostInfo extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let flagTrigger;
|
let flagTrigger;
|
||||||
if (!Utils.isPostEphemeral(post)) {
|
if (isEphemeral) {
|
||||||
flagTrigger = (
|
flagTrigger = (
|
||||||
<OverlayTrigger
|
<OverlayTrigger
|
||||||
key={'flagtooltipkey' + flagVisible}
|
key={'flagtooltipkey' + flagVisible}
|
||||||
@@ -516,14 +515,12 @@ PostInfo.defaultProps = {
|
|||||||
post: null,
|
post: null,
|
||||||
commentCount: 0,
|
commentCount: 0,
|
||||||
isLastComment: false,
|
isLastComment: false,
|
||||||
allowReply: false,
|
|
||||||
sameUser: false
|
sameUser: false
|
||||||
};
|
};
|
||||||
PostInfo.propTypes = {
|
PostInfo.propTypes = {
|
||||||
post: React.PropTypes.object.isRequired,
|
post: React.PropTypes.object.isRequired,
|
||||||
commentCount: React.PropTypes.number.isRequired,
|
commentCount: React.PropTypes.number.isRequired,
|
||||||
isLastComment: React.PropTypes.bool.isRequired,
|
isLastComment: React.PropTypes.bool.isRequired,
|
||||||
allowReply: React.PropTypes.bool.isRequired,
|
|
||||||
handleCommentClick: React.PropTypes.func.isRequired,
|
handleCommentClick: React.PropTypes.func.isRequired,
|
||||||
handleDropdownOpened: React.PropTypes.func.isRequired,
|
handleDropdownOpened: React.PropTypes.func.isRequired,
|
||||||
sameUser: React.PropTypes.bool.isRequired,
|
sameUser: React.PropTypes.bool.isRequired,
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ export default class RhsComment extends React.Component {
|
|||||||
unpinPost(this.props.post.channel_id, this.props.post.id);
|
unpinPost(this.props.post.channel_id, this.props.post.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
createDropdown() {
|
createDropdown(isSystemMessage) {
|
||||||
const post = this.props.post;
|
const post = this.props.post;
|
||||||
|
|
||||||
if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING) {
|
if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING) {
|
||||||
@@ -201,57 +201,59 @@ export default class RhsComment extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dropdownContents.push(
|
if (!isSystemMessage) {
|
||||||
<li
|
dropdownContents.push(
|
||||||
key='rhs-root-permalink'
|
<li
|
||||||
role='presentation'
|
key='rhs-root-permalink'
|
||||||
>
|
role='presentation'
|
||||||
<a
|
|
||||||
href='#'
|
|
||||||
onClick={this.handlePermalink}
|
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<a
|
||||||
id='rhs_comment.permalink'
|
href='#'
|
||||||
defaultMessage='Permalink'
|
onClick={this.handlePermalink}
|
||||||
/>
|
>
|
||||||
</a>
|
<FormattedMessage
|
||||||
</li>
|
id='rhs_comment.permalink'
|
||||||
);
|
defaultMessage='Permalink'
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
|
||||||
if (post.is_pinned) {
|
if (post.is_pinned) {
|
||||||
dropdownContents.push(
|
dropdownContents.push(
|
||||||
<li
|
<li
|
||||||
key='rhs-comment-unpin'
|
key='rhs-comment-unpin'
|
||||||
role='presentation'
|
role='presentation'
|
||||||
>
|
|
||||||
<a
|
|
||||||
href='#'
|
|
||||||
onClick={this.unpinPost}
|
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<a
|
||||||
id='rhs_root.unpin'
|
href='#'
|
||||||
defaultMessage='Un-pin from channel'
|
onClick={this.unpinPost}
|
||||||
/>
|
>
|
||||||
</a>
|
<FormattedMessage
|
||||||
</li>
|
id='rhs_root.unpin'
|
||||||
);
|
defaultMessage='Un-pin from channel'
|
||||||
} else {
|
/>
|
||||||
dropdownContents.push(
|
</a>
|
||||||
<li
|
</li>
|
||||||
key='rhs-comment-pin'
|
);
|
||||||
role='presentation'
|
} else {
|
||||||
>
|
dropdownContents.push(
|
||||||
<a
|
<li
|
||||||
href='#'
|
key='rhs-comment-pin'
|
||||||
onClick={this.pinPost}
|
role='presentation'
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<a
|
||||||
id='rhs_root.pin'
|
href='#'
|
||||||
defaultMessage='Pin to channel'
|
onClick={this.pinPost}
|
||||||
/>
|
>
|
||||||
</a>
|
<FormattedMessage
|
||||||
</li>
|
id='rhs_root.pin'
|
||||||
);
|
defaultMessage='Pin to channel'
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.canDelete) {
|
if (this.canDelete) {
|
||||||
@@ -362,15 +364,10 @@ export default class RhsComment extends React.Component {
|
|||||||
const post = this.props.post;
|
const post = this.props.post;
|
||||||
const flagIcon = Constants.FLAG_ICON_SVG;
|
const flagIcon = Constants.FLAG_ICON_SVG;
|
||||||
const mattermostLogo = Constants.MATTERMOST_ICON_SVG;
|
const mattermostLogo = Constants.MATTERMOST_ICON_SVG;
|
||||||
const isSystemMessage = PostUtils.isSystemMessage(post);
|
|
||||||
let canReact = false;
|
|
||||||
|
|
||||||
if (post.state !== Constants.POST_FAILED &&
|
const isEphemeral = Utils.isPostEphemeral(post);
|
||||||
post.state !== Constants.POST_LOADING &&
|
const isPending = post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING;
|
||||||
!Utils.isPostEphemeral(post) &&
|
const isSystemMessage = PostUtils.isSystemMessage(post);
|
||||||
Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMOJI_PICKER_PREVIEW)) {
|
|
||||||
canReact = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentUserCss = '';
|
var currentUserCss = '';
|
||||||
if (this.props.currentUser.id === post.user_id) {
|
if (this.props.currentUser.id === post.user_id) {
|
||||||
@@ -412,7 +409,7 @@ export default class RhsComment extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
botIndicator = <li className='col col__name bot-indicator'>{'BOT'}</li>;
|
botIndicator = <li className='col col__name bot-indicator'>{'BOT'}</li>;
|
||||||
} else if (PostUtils.isSystemMessage(post)) {
|
} else if (isSystemMessage) {
|
||||||
userProfile = (
|
userProfile = (
|
||||||
<UserProfile
|
<UserProfile
|
||||||
user={{}}
|
user={{}}
|
||||||
@@ -474,7 +471,7 @@ export default class RhsComment extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PostUtils.isSystemMessage(post)) {
|
if (isSystemMessage) {
|
||||||
profilePic = (
|
profilePic = (
|
||||||
<span
|
<span
|
||||||
className='icon'
|
className='icon'
|
||||||
@@ -556,7 +553,7 @@ export default class RhsComment extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let flagTrigger;
|
let flagTrigger;
|
||||||
if (!Utils.isPostEphemeral(post)) {
|
if (isEphemeral) {
|
||||||
flagTrigger = (
|
flagTrigger = (
|
||||||
<OverlayTrigger
|
<OverlayTrigger
|
||||||
key={'commentflagtooltipkey' + flagVisible}
|
key={'commentflagtooltipkey' + flagVisible}
|
||||||
@@ -578,7 +575,7 @@ export default class RhsComment extends React.Component {
|
|||||||
let react;
|
let react;
|
||||||
let reactOverlay;
|
let reactOverlay;
|
||||||
|
|
||||||
if (canReact) {
|
if (!isEphemeral && !isPending && !isSystemMessage && Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMOJI_PICKER_PREVIEW)) {
|
||||||
react = (
|
react = (
|
||||||
<span>
|
<span>
|
||||||
<a
|
<a
|
||||||
@@ -612,17 +609,17 @@ export default class RhsComment extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let options;
|
let options;
|
||||||
if (Utils.isPostEphemeral(post)) {
|
if (isEphemeral) {
|
||||||
options = (
|
options = (
|
||||||
<li className='col col__remove'>
|
<li className='col col__remove'>
|
||||||
{this.createRemovePostButton()}
|
{this.createRemovePostButton()}
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
} else if (!PostUtils.isSystemMessage(post)) {
|
} else if (!isSystemMessage) {
|
||||||
options = (
|
options = (
|
||||||
<li className='col col__reply'>
|
<li className='col col__reply'>
|
||||||
{reactOverlay}
|
{reactOverlay}
|
||||||
{this.createDropdown()}
|
{this.createDropdown(isSystemMessage)}
|
||||||
{react}
|
{react}
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -182,18 +182,15 @@ export default class RhsRootPost extends React.Component {
|
|||||||
const mattermostLogo = Constants.MATTERMOST_ICON_SVG;
|
const mattermostLogo = Constants.MATTERMOST_ICON_SVG;
|
||||||
var timestamp = user ? user.last_picture_update : 0;
|
var timestamp = user ? user.last_picture_update : 0;
|
||||||
var channel = ChannelStore.get(post.channel_id);
|
var channel = ChannelStore.get(post.channel_id);
|
||||||
let canReact = false;
|
|
||||||
const flagIcon = Constants.FLAG_ICON_SVG;
|
const flagIcon = Constants.FLAG_ICON_SVG;
|
||||||
if (post.state !== Constants.POST_FAILED &&
|
|
||||||
post.state !== Constants.POST_LOADING &&
|
|
||||||
!Utils.isPostEphemeral(post) &&
|
|
||||||
Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMOJI_PICKER_PREVIEW)) {
|
|
||||||
canReact = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.canDelete = PostUtils.canDeletePost(post);
|
this.canDelete = PostUtils.canDeletePost(post);
|
||||||
this.canEdit = PostUtils.canEditPost(post, this.editDisableAction);
|
this.canEdit = PostUtils.canEditPost(post, this.editDisableAction);
|
||||||
|
|
||||||
|
const isEphemeral = Utils.isPostEphemeral(post);
|
||||||
|
const isPending = post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING;
|
||||||
|
const isSystemMessage = PostUtils.isSystemMessage(post);
|
||||||
|
|
||||||
var type = 'Post';
|
var type = 'Post';
|
||||||
if (post.root_id.length > 0) {
|
if (post.root_id.length > 0) {
|
||||||
type = 'Comment';
|
type = 'Comment';
|
||||||
@@ -205,7 +202,7 @@ export default class RhsRootPost extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var systemMessageClass = '';
|
var systemMessageClass = '';
|
||||||
if (PostUtils.isSystemMessage(post)) {
|
if (isSystemMessage) {
|
||||||
systemMessageClass = 'post--system';
|
systemMessageClass = 'post--system';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,7 +223,7 @@ export default class RhsRootPost extends React.Component {
|
|||||||
let react;
|
let react;
|
||||||
let reactOverlay;
|
let reactOverlay;
|
||||||
|
|
||||||
if (canReact) {
|
if (!isEphemeral && !isPending && !isSystemMessage && Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMOJI_PICKER_PREVIEW)) {
|
||||||
react = (
|
react = (
|
||||||
<span>
|
<span>
|
||||||
<a
|
<a
|
||||||
@@ -298,57 +295,59 @@ export default class RhsRootPost extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dropdownContents.push(
|
if (!isSystemMessage) {
|
||||||
<li
|
dropdownContents.push(
|
||||||
key='rhs-root-permalink'
|
<li
|
||||||
role='presentation'
|
key='rhs-root-permalink'
|
||||||
>
|
role='presentation'
|
||||||
<a
|
|
||||||
href='#'
|
|
||||||
onClick={this.handlePermalink}
|
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<a
|
||||||
id='rhs_root.permalink'
|
href='#'
|
||||||
defaultMessage='Permalink'
|
onClick={this.handlePermalink}
|
||||||
/>
|
>
|
||||||
</a>
|
<FormattedMessage
|
||||||
</li>
|
id='rhs_root.permalink'
|
||||||
);
|
defaultMessage='Permalink'
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
|
||||||
if (post.is_pinned) {
|
if (post.is_pinned) {
|
||||||
dropdownContents.push(
|
dropdownContents.push(
|
||||||
<li
|
<li
|
||||||
key='rhs-root-unpin'
|
key='rhs-root-unpin'
|
||||||
role='presentation'
|
role='presentation'
|
||||||
>
|
|
||||||
<a
|
|
||||||
href='#'
|
|
||||||
onClick={this.unpinPost}
|
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<a
|
||||||
id='rhs_root.unpin'
|
href='#'
|
||||||
defaultMessage='Un-pin from channel'
|
onClick={this.unpinPost}
|
||||||
/>
|
>
|
||||||
</a>
|
<FormattedMessage
|
||||||
</li>
|
id='rhs_root.unpin'
|
||||||
);
|
defaultMessage='Un-pin from channel'
|
||||||
} else {
|
/>
|
||||||
dropdownContents.push(
|
</a>
|
||||||
<li
|
</li>
|
||||||
key='rhs-root-pin'
|
);
|
||||||
role='presentation'
|
} else {
|
||||||
>
|
dropdownContents.push(
|
||||||
<a
|
<li
|
||||||
href='#'
|
key='rhs-root-pin'
|
||||||
onClick={this.pinPost}
|
role='presentation'
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<a
|
||||||
id='rhs_root.pin'
|
href='#'
|
||||||
defaultMessage='Pin to channel'
|
onClick={this.pinPost}
|
||||||
/>
|
>
|
||||||
</a>
|
<FormattedMessage
|
||||||
</li>
|
id='rhs_root.pin'
|
||||||
);
|
defaultMessage='Pin to channel'
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.canDelete) {
|
if (this.canDelete) {
|
||||||
@@ -443,7 +442,7 @@ export default class RhsRootPost extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
botIndicator = <li className='col col__name bot-indicator'>{'BOT'}</li>;
|
botIndicator = <li className='col col__name bot-indicator'>{'BOT'}</li>;
|
||||||
} else if (PostUtils.isSystemMessage(post)) {
|
} else if (isSystemMessage) {
|
||||||
userProfile = (
|
userProfile = (
|
||||||
<UserProfile
|
<UserProfile
|
||||||
user={{}}
|
user={{}}
|
||||||
@@ -485,7 +484,7 @@ export default class RhsRootPost extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PostUtils.isSystemMessage(post)) {
|
if (isSystemMessage) {
|
||||||
profilePic = (
|
profilePic = (
|
||||||
<span
|
<span
|
||||||
className='icon'
|
className='icon'
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user