import React from 'react'; import PropTypes from 'prop-types'; import { Dialog } from 'coral-ui'; import { RadioGroup, Radio } from 'react-mdl'; import styles from './SuspendUserDialog.css'; import cn from 'classnames'; import Button from 'coral-ui/components/Button'; import t, { timeago } from 'coral-framework/services/i18n'; import { dateAdd } from 'coral-framework/utils'; const initialState = { step: 0, duration: '3' }; function durationsToDate(hours) { // Add 1 minute more to help `timeago.js` to display the correct duration. return dateAdd(new Date(), 'minute', hours * 60 + 1); } class SuspendUserDialog extends React.Component { state = initialState; componentWillReceiveProps(next) { if (this.props.open && !next.open) { this.setState(initialState); } } handleDurationChange = event => { this.setState({ duration: event.target.value }); }; handleMessageChange = event => { this.setState({ message: event.target.value }); }; goToStep1 = () => { this.setState({ step: 1, message: t( 'suspenduser.email_message_suspend', this.props.username, this.props.organizationName, timeago(durationsToDate(this.state.duration)) ), }); }; handlePerform = () => { this.props.onPerform({ message: this.state.message, // Add 1 minute more to help `timeago.js` to display the correct duration. until: durationsToDate(this.state.duration), }); }; renderStep0() { const { onCancel, username } = this.props; const { duration } = this.state; return (

{t('suspenduser.title_suspend')}

{t('suspenduser.description_suspend', username)}

{t('suspenduser.select_duration')} {t('suspenduser.one_hour')} {t('suspenduser.hours', 3)} {t('suspenduser.hours', 24)} {t('suspenduser.days', 7)}
); } renderStep1() { const { message } = this.state; const { onCancel, username } = this.props; return (

{t('suspenduser.title_notify')}

{t('suspenduser.description_notify', username)}

{t('suspenduser.write_message')}