import React, { Component } from "react"; import Button from "react-bootstrap/esm/Button"; import { LinkContainer } from "react-router-bootstrap"; import Nav from 'react-bootstrap/Nav'; // import Button from "react-bootstrap/esm/Button"; import Card from 'react-bootstrap/Card'; import ListGroup from 'react-bootstrap/ListGroup'; import { connect } from "react-redux"; import { bindActionCreators } from "redux"; import DeleteUserModal from './DeleteUserModal' import * as userManagementActions from '../actions/UserManagementActions' const mapStateToProps = state => { return state; } class UserItem extends Component { constructor(props) { super(props); this.MapAllUsers = this.MapAllUsers.bind(this); this.handleShow = this.handleShow.bind(this); this.handleClose = this.handleClose.bind(this); } handleShow(e, dialogModalData) { e.preventDefault(); const { showDeleteUserModalAction } = this.props showDeleteUserModalAction(dialogModalData) } handleClose() { const { hideDeleteUserModalAction } = this.props; hideDeleteUserModalAction(); } MapAllUsers() { const allUsers = this.props.userList if (allUsers) { var showDeleteUserModal = this.props.showDeleteUserModal if (showDeleteUserModal === undefined) { showDeleteUserModal = false } console.log("deleteModal:" + showDeleteUserModal) var users = allUsers.map(user => { let editButtonID = "EditButton" + user.userID let deleteButtonID = "DeleteButton" + user.userID let itemID = "UserItem" + user.userID let dialogData = { dialogID: "DeleteDialogUser" + user.userID, name: user.firstName + " " + user.lastName, userID: user.userID } return ( <div key={user.userID}> <DeleteUserModal /> <Card style={{ width: "18rem", background: '#ebebeb' }} id={itemID}> <Card.Header>{user.firstName} {user.lastName}</Card.Header> <ListGroup variant="flush"> <ListGroup.Item >User ID: {user.userID}</ListGroup.Item> <ListGroup.Item >First Name: {user.firstName}</ListGroup.Item> <ListGroup.Item >Last Name: {user.lastName}</ListGroup.Item> </ListGroup> <Card.Footer style={{ display: 'flex', justifyContent: 'space-evenly' }}> <LinkContainer to="/editUserForm" id={editButtonID}> <Nav.Link>Edit</Nav.Link> </LinkContainer> <Button variant="primary" type="submit" onClick={(e) => this.handleShow(e, dialogData)} id={deleteButtonID} style={{ background: '#ffc800', color: 'black', border: 'none' }}> Delete </Button> </Card.Footer> </Card> </div> ) }) return users } } render() { return ( <div> {this.MapAllUsers()} </div> ) } } const mapDispatchToProps = dispatch => bindActionCreators({ showDeleteUserModalAction: userManagementActions.getShowDeleteUserModalAction, hideDeleteUserModalAction: userManagementActions.getHideDeleteUserModalAction }, dispatch) const ConnectedUserItems = connect(mapStateToProps, mapDispatchToProps)(UserItem) export default ConnectedUserItems