summaryrefslogtreecommitdiffstats
path: root/web/react/components/rhs_root_post.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'web/react/components/rhs_root_post.jsx')
-rw-r--r--web/react/components/rhs_root_post.jsx287
1 files changed, 0 insertions, 287 deletions
diff --git a/web/react/components/rhs_root_post.jsx b/web/react/components/rhs_root_post.jsx
deleted file mode 100644
index fc1cd0b41..000000000
--- a/web/react/components/rhs_root_post.jsx
+++ /dev/null
@@ -1,287 +0,0 @@
-// 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 GlobalActions from '../action_creators/global_actions.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();
- GlobalActions.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 = (
- <FormattedMessage
- id='rhs_root.direct'
- defaultMessage='Direct Message'
- />
- );
- } else {
- channelName = channel.display_name;
- }
- }
-
- var dropdownContents = [];
-
- if (!Utils.isMobile()) {
- dropdownContents.push(
- <li
- key='rhs-root-permalink'
- role='presentation'
- >
- <a
- href='#'
- onClick={this.handlePermalink}
- >
- <FormattedMessage
- id='rhs_root.permalink'
- defaultMessage='Permalink'
- />
- </a>
- </li>
- );
- }
-
- if (isOwner) {
- dropdownContents.push(
- <li
- key='rhs-root-edit'
- role='presentation'
- >
- <a
- href='#'
- role='menuitem'
- data-toggle='modal'
- data-target='#edit_post'
- data-refocusid='#reply_textbox'
- data-title={type}
- data-message={post.message}
- data-postid={post.id}
- data-channelid={post.channel_id}
- >
- <FormattedMessage
- id='rhs_root.edit'
- defaultMessage='Edit'
- />
- </a>
- </li>
- );
- }
-
- if (isOwner || isAdmin) {
- dropdownContents.push(
- <li
- key='rhs-root-delete'
- role='presentation'
- >
- <a
- href='#'
- role='menuitem'
- onClick={() => GlobalActions.showDeletePostModal(post, this.props.commentCount)}
- >
- <FormattedMessage
- id='rhs_root.del'
- defaultMessage='Delete'
- />
- </a>
- </li>
- );
- }
-
- var rootOptions = '';
- if (dropdownContents.length > 0) {
- rootOptions = (
- <div className='dropdown'>
- <a
- href='#'
- className='post__dropdown dropdown-toggle'
- type='button'
- data-toggle='dropdown'
- aria-expanded='false'
- />
- <ul
- className='dropdown-menu'
- role='menu'
- >
- {dropdownContents}
- </ul>
- </div>
- );
- }
-
- var fileAttachment;
- if (post.filenames && post.filenames.length > 0) {
- fileAttachment = (
- <FileAttachmentList
- filenames={post.filenames}
- channelId={post.channel_id}
- userId={post.user_id}
- />
- );
- }
-
- let userProfile = <UserProfile user={user}/>;
- let botIndicator;
-
- if (post.props && post.props.from_webhook) {
- if (post.props.override_username && global.window.mm_config.EnablePostUsernameOverride === 'true') {
- userProfile = (
- <UserProfile
- user={user}
- overwriteName={post.props.override_username}
- disablePopover={true}
- />
- );
- }
-
- botIndicator = <li className='col col__name bot-indicator'>{'BOT'}</li>;
- } else if (Utils.isSystemMessage(post)) {
- userProfile = (
- <UserProfile
- user={{}}
- overwriteName={Constants.SYSTEM_MESSAGE_PROFILE_NAME}
- overwriteImage={Constants.SYSTEM_MESSAGE_PROFILE_IMAGE}
- disablePopover={true}
- />
- );
- }
-
- let src = '/api/v1/users/' + post.user_id + '/image?time=' + timestamp;
- 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;
- }
- } else if (Utils.isSystemMessage(post)) {
- src = Constants.SYSTEM_MESSAGE_PROFILE_IMAGE;
- }
-
- const profilePic = (
- <img
- className='post-profile-img'
- src={src}
- height='36'
- width='36'
- />
- );
-
- return (
- <div className={'post post--root ' + userCss + ' ' + systemMessageClass}>
- <div className='post-right-channel__name'>{channelName}</div>
- <div className='post__content'>
- <div className='post__img'>
- {profilePic}
- </div>
- <div>
- <ul className='post__header'>
- <li className='col__name'>{userProfile}</li>
- {botIndicator}
- <li className='col'>
- <time className='post__time'>
- <FormattedDate
- value={post.create_at}
- day='numeric'
- month='long'
- year='numeric'
- hour12={true}
- hour='2-digit'
- minute='2-digit'
- />
- </time>
- </li>
- <li className='col col__reply'>
- <div>
- {rootOptions}
- </div>
- </li>
- </ul>
- <div className='post__body'>
- <div
- ref='message_holder'
- onClick={TextFormatting.handleClick}
- dangerouslySetInnerHTML={{__html: TextFormatting.formatText(post.message)}}
- />
- <PostBodyAdditionalContent
- post={post}
- />
- {fileAttachment}
- </div>
- </div>
- </div>
- </div>
- );
- }
-}
-
-RhsRootPost.defaultProps = {
- commentCount: 0
-};
-RhsRootPost.propTypes = {
- post: React.PropTypes.object.isRequired,
- user: React.PropTypes.object.isRequired,
- commentCount: React.PropTypes.number
-};