import React, { Component } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import Avatar from 'components/Avatar';
import Dropdown from 'components/forms/fields/Dropdown';
import EditUserForm from 'components/forms/admin/EditUserForm';
import helpers from 'components/UserBlock/helpers';
import userInterface from 'interfaces/user';
class UserBlock extends Component {
static propTypes = {
isCurrentUser: PropTypes.bool.isRequired,
isEditing: PropTypes.bool.isRequired,
isInvite: PropTypes.bool.isRequired,
onEditUser: PropTypes.func.isRequired,
onToggleEditUser: PropTypes.func.isRequired,
onSelect: PropTypes.func,
user: userInterface.isRequired,
userErrors: PropTypes.shape({
base: PropTypes.string,
name: PropTypes.string,
username: PropTypes.string,
}),
};
onToggleEditing = (evt) => {
evt.preventDefault();
const { onToggleEditUser, user } = this.props;
return onToggleEditUser(user);
}
onEditUser = (updatedUser) => {
const { onEditUser, user } = this.props;
return onEditUser(user, updatedUser);
}
onUserActionSelect = (action) => {
const { onSelect, onToggleEditUser, user } = this.props;
if (action === 'modify_details') {
return onToggleEditUser(user);
}
return onSelect(user, action);
}
renderCTAs = () => {
const { isCurrentUser, isInvite, user } = this.props;
const { onUserActionSelect } = this;
const userActionOptions = helpers.userActionOptions(isCurrentUser, user, isInvite);
return (
{username}
{position}
{email}
{renderCTAs()}