// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. var UserStore = require('../stores/user_store.jsx'); var utils = require('../utils/utils.jsx'); var Constants = require('../utils/constants.jsx'); export default class PostInfo extends React.Component { constructor(props) { super(props); this.state = {}; } shouldShowComment(state, type, isOwner) { if (state === Constants.POST_FAILED || state === Constants.POST_LOADING) { return false; } return isOwner || (this.props.allowReply === 'true' && type !== 'Comment'); } createDropdown() { var post = this.props.post; var isOwner = UserStore.getCurrentId() === post.user_id; var isAdmin = UserStore.getCurrentUser().roles.indexOf('admin') > -1; if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING || post.state === Constants.POST_DELETED) { return ''; } var type = 'Post'; if (post.root_id && post.root_id.length > 0) { type = 'Comment'; } if (!this.shouldShowComment(post.state, type, isOwner)) { return ''; } var dropdownContents = []; var dataComments = 0; if (type === 'Post') { dataComments = this.props.commentCount; } if (isOwner) { dropdownContents.push(
  • Edit
  • ); } if (isOwner || isAdmin) { dropdownContents.push(
  • Delete
  • ); } if (this.props.allowReply === 'true') { dropdownContents.push(
  • Reply
  • ); } return (
    {this.props.commentCount} ); } var dropdown = this.createDropdown(); return ( ); } } PostInfo.defaultProps = { post: null, commentCount: 0, isLastComment: false, allowReply: false }; PostInfo.propTypes = { post: React.PropTypes.object, commentCount: React.PropTypes.number, isLastComment: React.PropTypes.bool, allowReply: React.PropTypes.string, handleCommentClick: React.PropTypes.func };