import React from 'react'; import PropTypes from 'prop-types'; import {Link} from 'react-router'; import {Icon} from 'coral-ui'; import FlagBox from './FlagBox'; import ReplyBadge from './ReplyBadge'; import styles from './UserDetailComment.css'; import CommentType from './CommentType'; import {getActionSummary} from 'coral-framework/utils'; import ActionButton from 'coral-admin/src/components/ActionButton'; import CommentBodyHighlighter from 'coral-admin/src/components/CommentBodyHighlighter'; import IfHasLink from 'coral-admin/src/components/IfHasLink'; import cn from 'classnames'; import {getCommentType} from 'coral-admin/src/utils/comment'; import CommentAnimatedEdit from './CommentAnimatedEdit'; import t, {timeago} from 'coral-framework/services/i18n'; class UserDetailComment extends React.Component { render() { const { actions = [], comment, viewUserDetail, suspectWords, bannedWords, selected, toggleSelect, className, user, ...props } = this.props; const flagActionSummaries = getActionSummary('FlagActionSummary', comment); const flagActions = comment.actions && comment.actions.filter((a) => a.__typename === 'FlagAction'); const commentType = getCommentType(comment); return (
  • toggleSelect(e.target.value, e.target.checked)} /> {timeago(comment.created_at)} { (comment.editing && comment.editing.edited) ?  ({t('comment.edited')}) : null }
    {comment.hasParent && }
    Story: {comment.asset.title} {{t('modqueue.moderate')}}

    {' '} {t('comment.view_context')}

    Contains Link
    {actions.map((action, i) => { const active = (action === 'REJECT' && comment.status === 'REJECTED') || (action === 'APPROVE' && comment.status === 'ACCEPTED'); return ( (comment.status === 'ACCEPTED' ? null : props.acceptComment({commentId: comment.id}))} rejectComment={() => (comment.status === 'REJECTED' ? null : props.rejectComment({commentId: comment.id}))} /> ); })}
    {flagActions && flagActions.length ? : null}
  • ); } } UserDetailComment.propTypes = { user: PropTypes.object.isRequired, viewUserDetail: PropTypes.func.isRequired, acceptComment: PropTypes.func.isRequired, rejectComment: PropTypes.func.isRequired, className: PropTypes.string, suspectWords: PropTypes.arrayOf(PropTypes.string).isRequired, bannedWords: PropTypes.arrayOf(PropTypes.string).isRequired, toggleSelect: PropTypes.func, comment: PropTypes.shape({ body: PropTypes.string.isRequired, action_summaries: PropTypes.array, actions: PropTypes.array, created_at: PropTypes.string.isRequired, asset: PropTypes.shape({ title: PropTypes.string, url: PropTypes.string, id: PropTypes.string }) }) }; export default UserDetailComment;