From 3954b7a268152e04d035ffb24dda1d4a8a25046e Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Mon, 31 Jul 2017 22:37:08 +0700 Subject: [PATCH] Label for inactive comments --- .../src/components/Comment.js | 6 +++- .../src/components/InactiveCommentLabel.css | 32 +++++++++++++++++ .../src/components/InactiveCommentLabel.js | 36 +++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 client/coral-embed-stream/src/components/InactiveCommentLabel.css create mode 100644 client/coral-embed-stream/src/components/InactiveCommentLabel.js diff --git a/client/coral-embed-stream/src/components/Comment.js b/client/coral-embed-stream/src/components/Comment.js index 67fc8ee5a..34f672d8a 100644 --- a/client/coral-embed-stream/src/components/Comment.js +++ b/client/coral-embed-stream/src/components/Comment.js @@ -20,6 +20,7 @@ import {TopRightMenu} from './TopRightMenu'; import CommentContent from './CommentContent'; import Slot from 'coral-framework/components/Slot'; import IgnoredCommentTombstone from './IgnoredCommentTombstone'; +import InactiveCommentLabel from './InactiveCommentLabel'; import {EditableCommentContent} from './EditableCommentContent'; import {getActionSummary, iPerformedThisAction, forEachError, isCommentActive} from 'coral-framework/utils'; import t from 'coral-framework/services/i18n'; @@ -438,7 +439,7 @@ export default class Comment extends React.Component { } } - { (currentUser && (comment.user.id !== currentUser.id)) && + { isActive && (currentUser && (comment.user.id !== currentUser.id)) && /* TopRightMenu allows currentUser to ignore other users' comments */ @@ -448,6 +449,9 @@ export default class Comment extends React.Component { addNotification={addNotification} /> } + { !isActive && + + }
{ diff --git a/client/coral-embed-stream/src/components/InactiveCommentLabel.css b/client/coral-embed-stream/src/components/InactiveCommentLabel.css new file mode 100644 index 000000000..01ba197b5 --- /dev/null +++ b/client/coral-embed-stream/src/components/InactiveCommentLabel.css @@ -0,0 +1,32 @@ +.root { + display: inline-block; + color: white; + background: grey; + height: 22px; + box-sizing: border-box; + line-height: 19px; + padding: 2px 6px 2px 4px; + border-radius: 2px; + font-size: 12px; + text-transform: capitalize; +} + +.icon { + font-size: 14px; + vertical-align: text-top; + margin: 0; + margin-right: 4px; +} + +.label { + display: inline-block; +} + +.premod { + background: #063B9A; +} + +.rejected { + background: #d03235; +} + diff --git a/client/coral-embed-stream/src/components/InactiveCommentLabel.js b/client/coral-embed-stream/src/components/InactiveCommentLabel.js new file mode 100644 index 000000000..824692558 --- /dev/null +++ b/client/coral-embed-stream/src/components/InactiveCommentLabel.js @@ -0,0 +1,36 @@ +import React, {PropTypes} from 'react'; +import t from 'coral-framework/services/i18n'; +import styles from './InactiveCommentLabel.css'; +import {Icon} from 'coral-ui'; +import cn from 'classnames'; + +const InactiveCommentLabel = ({status, className, ...rest}) => { + let label; + let icon; + + switch (status) { + case 'PREMOD': + label = t('modqueue.premod'); + icon = 'query_builder'; + break; + case 'REJECTED': + label = t('modqueue.rejected'); + icon = 'close'; + break; + default: + throw new Error(`Unknown inactive status ${status}`); + } + + return ( + + + {label} + + ); +}; + +InactiveCommentLabel.propTypes = { + status: PropTypes.string.isRequired, +}; + +export default InactiveCommentLabel;