import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import StatusActivateButton from './StatusActivateButton'; import StatusSuspendedButton from './StatusSuspendedButton'; import RemoveUserButton from './UserRemoveButton'; import RemoveAdminButton from './RemoveAdminButton'; import GiveAdminButton from './GiveAdminButton'; import { createSubscribedElement } from '../../UnstatedUtils'; import AppContainer from '../../../services/AppContainer'; import AdminUsersContainer from '../../../services/AdminUsersContainer'; class UserMenu extends React.Component { constructor(props) { super(props); this.state = { }; this.onPasswordResetClicked = this.onPasswordResetClicked.bind(this); } onPasswordResetClicked() { this.props.adminUsersContainer.showPasswordResetModal(this.props.user); } renderEditMenu() { const { t } = this.props; return ( {t('admin:user_management.user_table.edit_menu')} { t('admin:user_management.reset_password') } ); } renderStatusMenu() { const { t, user } = this.props; return ( {t('status')} {(user.status === 1 || user.status === 3) && } {user.status === 2 && } {(user.status === 1 || user.status === 3 || user.status === 5) && } ); } renderAdminMenu() { const { t, user } = this.props; return ( {t('admin:user_management.user_table.administrator_menu')} {user.admin === true && } {user.admin === false && } ); } render() { const { user } = this.props; return ( {this.renderEditMenu()} {user.status !== 4 && this.renderStatusMenu()} {user.status === 2 && this.renderAdminMenu()} ); } } const UserMenuWrapper = (props) => { return createSubscribedElement(UserMenu, props, [AppContainer, AdminUsersContainer]); }; UserMenu.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired, user: PropTypes.object.isRequired, }; export default withTranslation()(UserMenuWrapper);