nodebb-plugin-ns-awards-next
Version:
System for rewarding forum users. It allows admin to define set of awards that could be granted to users for special accomplishments.
51 lines (44 loc) • 1.35 kB
JavaScript
import PropTypes from 'prop-types';
import React from 'react';
import {connect} from 'react-redux';
import {removeUserForGrant} from '../../action/actions';
import UserSelectListItem from '../display/user-select-list-item';
import {getUsersForGrant} from '../../model/selector/selectors';
class UserSelectList extends React.Component {
render() {
let items;
if (this.props.usersForGrant.length === 0) {
items = <div className="alert alert-info" role="alert">
0 users are selected for rewarding
</div>;
} else {
items = this.props.usersForGrant.map(user => {
return <UserSelectListItem
itemWillDelete={() => this.props.deleteUser(user)}
key={user.username}
user={user}/>;
});
}
return (
<div className="user-select-list">
{items}
</div>
);
}
}
UserSelectList.propTypes = {
deleteUser : PropTypes.func,
usersForGrant: PropTypes.array
};
export default connect(
state => {
return {
usersForGrant: getUsersForGrant(state)
};
},
dispatch => {
return {
deleteUser: user => dispatch(removeUserForGrant(user))
};
}
)(UserSelectList);