/** * * ListRow * */ import React from 'react'; import cn from 'classnames'; import PropTypes from 'prop-types'; import { router } from 'app'; // Design import IcoContainer from 'components/IcoContainer'; import PopUpWarning from 'components/PopUpWarning'; import styles from './styles.scss'; class ListRow extends React.Component { // eslint-disable-line react/prefer-stateless-function state = { showModalDelete: false }; componentWillReceiveProps(nextProps) { if (nextProps.deleteActionSucceeded !== this.props.deleteActionSucceeded) { this.setState({ showModalDelete: false }); } } generateContent = () => { let icons = [ { icoType: 'pencil', onClick: this.handleClick, }, { icoType: 'trash', onClick: () => { this.setState({ showModalDelete: true }); }, }, ]; switch (this.props.settingType) { case 'roles': return (
{this.props.item.name}
{this.props.item.description}
{this.props.item.nb_users}  {this.props.item.nb_users > 1 ? ( 'users' ) : ( 'user' )}
); case 'providers': return (
{this.props.item.name}
{this.props.item.enabled ? ( Enabled ) : ( Disabled )}
); case 'email-templates': icons = [ { icoType: 'pencil', onClick: this.handleClick, }, ]; return (
{this.props.item.name}
); default: return ''; } } handleClick = () => { switch (this.props.settingType) { case 'roles': return router.push(`${router.location.pathname}/edit/${this.props.item.id}`); case 'providers': case 'email-templates': return router.push(`${router.location.pathname}#edit::${this.props.settingType}::${this.props.item.id}`); default: return; } } handleDelete = () => this.props.deleteData(this.props.item, this.props.settingType); render() { return (
  • {this.generateContent()}
    this.setState({ showModalDelete: false })} />
  • ); } } ListRow.defaultProps = { item: { name: 'Owner', description: 'Rule them all. This role can\'t be deleted', nb_users: 1, }, settingType: 'roles', }; ListRow.propTypes = { deleteActionSucceeded: PropTypes.bool.isRequired, deleteData: PropTypes.func.isRequired, item: PropTypes.object, settingType: PropTypes.string, }; export default ListRow;