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_body.jsx | 186 ---------------------------------------- 1 file changed, 186 deletions(-) delete mode 100644 webapp/components/post_body.jsx (limited to 'webapp/components/post_body.jsx') diff --git a/webapp/components/post_body.jsx b/webapp/components/post_body.jsx deleted file mode 100644 index 415052d96..000000000 --- a/webapp/components/post_body.jsx +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import FileAttachmentList from './file_attachment_list.jsx'; -import UserStore from 'stores/user_store.jsx'; -import * as Utils from 'utils/utils.jsx'; -import Constants from 'utils/constants.jsx'; -import * as TextFormatting from 'utils/text_formatting.jsx'; -import PostBodyAdditionalContent from './post_body_additional_content.jsx'; -import PendingPostActions from './pending_post_actions.jsx'; - -import {FormattedMessage} from 'react-intl'; - -import loadingGif from 'images/load.gif'; - -import React from 'react'; - -export default class PostBody extends React.Component { - shouldComponentUpdate(nextProps) { - if (!Utils.areObjectsEqual(nextProps.post, this.props.post)) { - return true; - } - - if (!Utils.areObjectsEqual(nextProps.parentPost, this.props.parentPost)) { - return true; - } - - if (!Utils.areObjectsEqual(nextProps.compactDisplay, this.props.compactDisplay)) { - return true; - } - - if (nextProps.handleCommentClick.toString() !== this.props.handleCommentClick.toString()) { - return true; - } - - return false; - } - - render() { - const post = this.props.post; - const filenames = this.props.post.filenames; - const parentPost = this.props.parentPost; - - let comment = ''; - let postClass = ''; - - if (parentPost) { - const profile = UserStore.getProfile(parentPost.user_id); - - let apostrophe = ''; - let name = '...'; - if (profile != null) { - let username = profile.username; - if (parentPost.props && - parentPost.props.from_webhook && - parentPost.props.override_username && - global.window.mm_config.EnablePostUsernameOverride === 'true') { - username = parentPost.props.override_username; - } - - if (username.slice(-1) === 's') { - apostrophe = '\''; - } else { - apostrophe = '\'s'; - } - name = ( - - {username} - - ); - } - - let message = ''; - if (parentPost.message) { - message = Utils.replaceHtmlEntities(parentPost.message); - } else if (parentPost.filenames.length) { - message = parentPost.filenames[0].split('/').pop(); - - if (parentPost.filenames.length === 2) { - message += Utils.localizeMessage('post_body.plusOne', ' plus 1 other file'); - } else if (parentPost.filenames.length > 2) { - message += Utils.localizeMessage('post_body.plusMore', ' plus {count} other files').replace('{count}', (parentPost.filenames.length - 1).toString()); - } - } - - comment = ( -
- - - - {message} - - -
- ); - } - - let loading; - if (post.state === Constants.POST_FAILED) { - postClass += ' post--fail'; - loading = ; - } else if (post.state === Constants.POST_LOADING) { - postClass += ' post-waiting'; - loading = ( - - ); - } - - let fileAttachmentHolder = ''; - if (filenames && filenames.length > 0) { - fileAttachmentHolder = ( - - ); - } - - let message; - let additionalContent = null; - if (this.props.post.state === Constants.POST_DELETED) { - message = ( - - ); - } else { - message = ( - - ); - - additionalContent = ( - - ); - } - - return ( -
- {comment} -
-
- {loading} - {message} -
- {fileAttachmentHolder} - {additionalContent} -
-
- ); - } -} - -PostBody.propTypes = { - post: React.PropTypes.object.isRequired, - parentPost: React.PropTypes.object, - retryPost: React.PropTypes.func.isRequired, - handleCommentClick: React.PropTypes.func.isRequired, - compactDisplay: React.PropTypes.bool -}; -- cgit v1.2.3-1-g7c22