From a468fe4c2814da3399d138f184cb05ff2630d76d Mon Sep 17 00:00:00 2001 From: David Jay Date: Thu, 5 Jan 2017 16:51:37 -0500 Subject: [PATCH] Adding language and e-mail input to suspend user modal. --- .../src/components/ModerationList.js | 2 +- .../src/components/SuspendUserModal.js | 63 ++++++++++++++----- client/coral-admin/src/translations.json | 12 ++++ 3 files changed, 60 insertions(+), 17 deletions(-) diff --git a/client/coral-admin/src/components/ModerationList.js b/client/coral-admin/src/components/ModerationList.js index 669d821ff..977407849 100644 --- a/client/coral-admin/src/components/ModerationList.js +++ b/client/coral-admin/src/components/ModerationList.js @@ -33,7 +33,7 @@ export default class ModerationList extends React.Component { suspectWords: PropTypes.arrayOf(PropTypes.string).isRequired } - state = {active: null, suspendUserModal: null}; + state = {active: null, suspendUserModal: null, email: null}; // remove key handlers before leaving componentWillUnmount () { diff --git a/client/coral-admin/src/components/SuspendUserModal.js b/client/coral-admin/src/components/SuspendUserModal.js index 2204d797f..c3725271c 100644 --- a/client/coral-admin/src/components/SuspendUserModal.js +++ b/client/coral-admin/src/components/SuspendUserModal.js @@ -1,6 +1,6 @@ import I18n from 'coral-framework/modules/i18n/i18n'; import translations from '../translations.json'; -import React from 'react'; +import React, {Component, PropTypes} from 'react'; import Modal from 'components/Modal'; import styles from './SuspendUserModal.css'; import {Button} from 'coral-ui'; @@ -18,26 +18,57 @@ const stages = [ title: 'suspenduser.title_1', description: 'suspenduser.description_1', options: { - 'j': 'suspenduser.cancel', + 'j': 'bandialog.cancel', 'k': 'suspenduser.send' } } ]; -export default ({stage, actionType, onClose, onButtonClick}) => - actionType ? -

{lang.t(stages[stage].title)}

-
-
- {lang.t(stages[stage].description)} +class SuspendUserModal extends Component { + + state = {email: ''} + + static propTypes = { + stage: PropTypes.number, + actionType: PropTypes.string, + onClose: PropTypes.func.isRequired, + onButtonClick: PropTypes.func.isRequired + } + + componentDidMount() { + const about = this.props.actionType === 'flag_bio' ? lang.t('suspenduser.bio') : lang.t('suspenduser.username'); + this.setState({email: lang.t('suspenduser.email', about)}); + } + + onEmailChange = (e) => this.setState({email: e.target.value}) + + render () { + const {stage, actionType, onClose, onButtonClick} = this.props; + const about = actionType === 'flag_bio' ? lang.t('suspenduser.bio') : lang.t('suspenduser.username'); + return actionType ? +

{lang.t(stages[stage].title, about)}

+
+
+ {lang.t(stages[stage].description, about)} +
+ { + stage === 1 && +