// 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 FileAttachmentList from './file_attachment_list.jsx'; import twemoji from 'twemoji'; import Constants from '../utils/constants.jsx'; import PostBodyAdditionalContent from './post_body_additional_content.jsx'; import * as EventHelpers from '../dispatcher/event_helpers.jsx'; export default class RhsRootPost extends React.Component { constructor(props) { super(props); this.parseEmojis = this.parseEmojis.bind(this); this.state = {}; } parseEmojis() { twemoji.parse(ReactDOM.findDOMNode(this), {size: Constants.EMOJI_SIZE}); } componentDidMount() { this.parseEmojis(); } shouldComponentUpdate(nextProps) { if (!utils.areObjectsEqual(nextProps.post, this.props.post)) { return true; } return false; } componentDidUpdate() { this.parseEmojis(); } render() { var post = this.props.post; var isOwner = UserStore.getCurrentId() === post.user_id; 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 currentUserCss = ''; if (UserStore.getCurrentId() === post.user_id) { currentUserCss = 'current--user'; } var channelName; if (channel) { if (channel.type === 'D') { channelName = 'Direct Message'; } else { channelName = channel.display_name; } } var ownerOptions; if (isOwner) { ownerOptions = (
); } var fileAttachment; if (post.filenames && post.filenames.length > 0) { fileAttachment = ( ); } let userProfile = ; let botIndicator; if (post.props && post.props.from_webhook) { if (post.props.override_username && global.window.mm_config.EnablePostUsernameOverride === 'true') { userProfile = ( ); } botIndicator =
  • {'BOT'}
  • ; } let src = '/api/v1/users/' + post.user_id + '/image?time=' + timestamp + '&' + utils.getSessionIndex(); if (post.props && post.props.from_webhook && global.window.mm_config.EnablePostIconOverride === 'true') { if (post.props.override_icon_url) { src = post.props.override_icon_url; } } const profilePic = ( ); return (
    {channelName}
    {profilePic}
    • {userProfile}
    • {botIndicator}
    • {ownerOptions}
    {fileAttachment}

    ); } } RhsRootPost.defaultProps = { post: null, commentCount: 0 }; RhsRootPost.propTypes = { post: React.PropTypes.object, commentCount: React.PropTypes.number };