// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. var FileAttachmentList = require('./file_attachment_list.jsx'); var UserStore = require('../stores/user_store.jsx'); var utils = require('../utils/utils.jsx'); var Constants = require('../utils/constants.jsx'); module.exports = React.createClass({ componentWillReceiveProps: function(nextProps) { var linkData = utils.extractLinks(nextProps.post.message); this.setState({ links: linkData["links"], message: linkData["text"] }); }, getInitialState: function() { var linkData = utils.extractLinks(this.props.post.message); return { links: linkData["links"], message: linkData["text"] }; }, render: function() { var post = this.props.post; var filenames = this.props.post.filenames; var parentPost = this.props.parentPost; var inner = utils.textToJsx(this.state.message); var comment = ""; var reply = ""; var postClass = ""; if (parentPost) { var profile = UserStore.getProfile(parentPost.user_id); var apostrophe = ""; var name = "..."; if (profile != null) { if (profile.username.slice(-1) === 's') { apostrophe = '\''; } else { apostrophe = '\'s'; } name = {profile.username}; } var 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 += " plus 1 other file"; } else if (parentPost.filenames.length > 2) { message += " plus " + (parentPost.filenames.length - 1) + " other files"; } } comment = (
Commented on {name}{apostrophe} message: {message}
); postClass += " post-comment"; } var loading; if (post.state === Constants.POST_FAILED) { postClass += ' post-fail'; loading = Retry; } else if (post.state === Constants.POST_LOADING) { postClass += ' post-waiting'; loading ={loading}{inner}
{fileAttachmentHolder} {embed}