// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import ChannelStore from '../stores/channel_store.jsx'; import UserProfile from './user_profile.jsx'; import UserStore from '../stores/user_store.jsx'; import * as TextFormatting from '../utils/text_formatting.jsx'; import * as Utils from '../utils/utils.jsx'; import * as Emoji from '../utils/emoticons.jsx'; import FileAttachmentList from './file_attachment_list.jsx'; import twemoji from 'twemoji'; import PostBodyAdditionalContent from './post_body_additional_content.jsx'; import * as EventHelpers from '../dispatcher/event_helpers.jsx'; import Constants from '../utils/constants.jsx'; import {FormattedMessage, FormattedDate} from 'mm-intl'; export default class RhsRootPost extends React.Component { constructor(props) { super(props); this.parseEmojis = this.parseEmojis.bind(this); this.handlePermalink = this.handlePermalink.bind(this); this.state = {}; } parseEmojis() { twemoji.parse(ReactDOM.findDOMNode(this), { className: 'emoji twemoji', base: '', folder: Emoji.getImagePathForEmoticon() }); } handlePermalink(e) { e.preventDefault(); EventHelpers.showGetPostLinkModal(this.props.post); } componentDidMount() { this.parseEmojis(); } shouldComponentUpdate(nextProps) { if (!Utils.areObjectsEqual(nextProps.post, this.props.post)) { return true; } return false; } componentDidUpdate() { this.parseEmojis(); } render() { const post = this.props.post; const user = this.props.user; var isOwner = user.id === post.user_id; var isAdmin = Utils.isAdmin(user.roles); var timestamp = UserStore.getProfile(post.user_id).update_at; var channel = ChannelStore.get(post.channel_id); var type = 'Post'; if (post.root_id.length > 0) { type = 'Comment'; } var userCss = ''; if (UserStore.getCurrentId() === post.user_id) { userCss = 'current--user'; } var systemMessageClass = ''; if (Utils.isSystemMessage(post)) { systemMessageClass = 'post--system'; } var channelName; if (channel) { if (channel.type === 'D') { channelName = ( ); } else { channelName = channel.display_name; } } var dropdownContents = []; if (!Utils.isMobile()) { dropdownContents.push(
  • ); } if (isOwner) { dropdownContents.push(
  • ); } if (isOwner || isAdmin) { dropdownContents.push(
  • EventHelpers.showDeletePostModal(post, this.props.commentCount)} >
  • ); } var rootOptions = ''; if (dropdownContents.length > 0) { rootOptions = (