/** * * ListRow * */ import React from 'react'; import cn from 'classnames'; import PropTypes from 'prop-types'; // 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 }); } } handleDelete = () => this.props.deleteData(this.props.item, this.props.settingType); generateContent = () => { let icons = [ { icoType: 'pencil', onClick: () => { console.log('edit') }, }, { 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: () => { console.log('edit') }, }, ]; return (
{this.props.item.name}
); default: return ''; } } 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;