// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. var ChannelStore = require('../stores/channel_store.jsx'); var UserProfile = require('./user_profile.jsx'); var UserStore = require('../stores/user_store.jsx'); var TextFormatting = require('../utils/text_formatting.jsx'); var utils = require('../utils/utils.jsx'); var FileAttachmentList = require('./file_attachment_list.jsx'); var twemoji = require('twemoji'); var Constants = require('../utils/constants.jsx'); export default class RhsRootPost extends React.Component { constructor(props) { super(props); this.parseEmojis = this.parseEmojis.bind(this); this.state = {}; } parseEmojis() { twemoji.parse(React.findDOMNode(this), {size: Constants.EMOJI_SIZE}); } componentDidMount() { this.parseEmojis(); } shouldComponentUpdate(nextProps) { if (!utils.areStatesEqual(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 = ( ); } return (
{channelName}
  • {ownerOptions}
{fileAttachment}

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