// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
var UserStore = require('../stores/user_store.jsx');
var utils = require('../utils/utils.jsx');
var TimeSince = require('./time_since.jsx');
var Constants = require('../utils/constants.jsx');
export default class PostInfo extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
createDropdown() {
var post = this.props.post;
var isOwner = UserStore.getCurrentId() === post.user_id;
var isAdmin = utils.isAdmin(UserStore.getCurrentUser().roles);
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';
}
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
);
}
if (dropdownContents.length === 0) {
return '';
}
return (
);
}
render() {
var post = this.props.post;
var comments = '';
var lastCommentClass = ' comment-icon__container__hide';
if (this.props.isLastComment) {
lastCommentClass = ' comment-icon__container__show';
}
if (this.props.commentCount >= 1 && post.state !== Constants.POST_FAILED && post.state !== Constants.POST_LOADING && post.state !== Constants.POST_DELETED) {
comments = (
{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
};