From 6399a94ce221be3d15e7132654c28cd953075ec6 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Fri, 27 May 2016 16:01:28 -0400 Subject: PLT-2672 Refactored posts view with caching (#3054) * Refactored posts view to use view controller design * Add post view caching * Required updates after rebase * Fixed bug where current channel not set yet was causing breakage --- webapp/components/post_info.jsx | 257 ---------------------------------------- 1 file changed, 257 deletions(-) delete mode 100644 webapp/components/post_info.jsx (limited to 'webapp/components/post_info.jsx') diff --git a/webapp/components/post_info.jsx b/webapp/components/post_info.jsx deleted file mode 100644 index e3b80e45c..000000000 --- a/webapp/components/post_info.jsx +++ /dev/null @@ -1,257 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import $ from 'jquery'; -import * as Utils from 'utils/utils.jsx'; -import TimeSince from './time_since.jsx'; -import * as GlobalActions from 'actions/global_actions.jsx'; -import TeamStore from 'stores/team_store.jsx'; -import UserStore from 'stores/user_store.jsx'; - -import Constants from 'utils/constants.jsx'; - -import {FormattedMessage} from 'react-intl'; - -import React from 'react'; - -export default class PostInfo extends React.Component { - constructor(props) { - super(props); - - this.dropdownPosition = this.dropdownPosition.bind(this); - this.handlePermalink = this.handlePermalink.bind(this); - this.removePost = this.removePost.bind(this); - } - dropdownPosition(e) { - var position = $('#post-list').height() - $(e.target).offset().top; - var dropdown = $(e.target).closest('.col__reply').find('.dropdown-menu'); - if (position < dropdown.height()) { - dropdown.addClass('bottom'); - } - } - createDropdown() { - var post = this.props.post; - var isOwner = this.props.currentUser.id === post.user_id; - var isAdmin = TeamStore.isTeamAdminForCurrentTeam() || UserStore.isSystemAdminForCurrentUser(); - const isSystemMessage = post.type && post.type.startsWith(Constants.SYSTEM_MESSAGE_PREFIX); - - if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING || Utils.isPostEphemeral(post)) { - return ''; - } - - var type = 'Post'; - if (post.root_id && post.root_id.length > 0) { - type = 'Comment'; - } - - var dropdownContents = []; - var dataComments = 0; - if (type === 'Post') { - dataComments = this.props.commentCount; - } - - if (this.props.allowReply === 'true') { - dropdownContents.push( -
  • - - - -
  • - ); - } - - if (!Utils.isMobile()) { - dropdownContents.push( -
  • - - - -
  • - ); - } - - if (isOwner || isAdmin) { - dropdownContents.push( -
  • - GlobalActions.showDeletePostModal(post, dataComments)} - > - - -
  • - ); - } - - if (isOwner && !isSystemMessage) { - dropdownContents.push( -
  • - - - -
  • - ); - } - - if (dropdownContents.length === 0) { - return ''; - } - - return ( -
    -
    - {'×'} - - ); - } - render() { - var post = this.props.post; - var comments = ''; - var showCommentClass = ''; - var commentCountText = this.props.commentCount; - - if (this.props.commentCount >= 1) { - showCommentClass = ' icon--show'; - } else { - commentCountText = ''; - } - - if (post.state !== Constants.POST_FAILED && post.state !== Constants.POST_LOADING && !Utils.isPostEphemeral(post)) { - comments = ( - - - {commentCountText} - - ); - } - - var dropdown = this.createDropdown(); - - return ( - - ); - } -} - -PostInfo.defaultProps = { - post: null, - commentCount: 0, - isLastComment: false, - allowReply: false, - sameUser: false -}; -PostInfo.propTypes = { - post: React.PropTypes.object.isRequired, - commentCount: React.PropTypes.number.isRequired, - isLastComment: React.PropTypes.bool.isRequired, - allowReply: React.PropTypes.string.isRequired, - handleCommentClick: React.PropTypes.func.isRequired, - sameUser: React.PropTypes.bool.isRequired, - currentUser: React.PropTypes.object.isRequired, - compactDisplay: React.PropTypes.bool -}; -- cgit v1.2.3-1-g7c22