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('user_management.edit_menu') }
{ t('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('user_management.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);