Advertisement
Guest User

Untitled

a guest
Jul 15th, 2019
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. import React, { Component } from "react";
  2. import PropTypes from "prop-types";
  3. import { graphql } from "react-apollo";
  4.  
  5. import DELETE_USER from "Mutations/deleteUser";
  6.  
  7. import { faTrash } from "@fortawesome/free-solid-svg-icons";
  8. import { UserListItem, DeleteUser } from "./Styles";
  9.  
  10. class UserItem extends Component {
  11. state = {
  12. deleted: false
  13. };
  14.  
  15. deleteUser = id => {
  16. const { mutate } = this.props;
  17.  
  18. mutate({
  19. variables: { id }
  20. })
  21. .then((resp) => {
  22. console.log(resp)
  23. this.setState({
  24. deleted: true
  25. });
  26. })
  27. .catch((err) => err);
  28. };
  29.  
  30. render() {
  31. const { username, id } = this.props;
  32. const { deleted } = this.state;
  33.  
  34. const deletedMessage = `Successfully Deleted ${username}`;
  35.  
  36. if (!deleted) {
  37. return (
  38. <UserListItem>
  39. {username}
  40. <DeleteUser icon={faTrash} onClick={() => this.deleteUser(id)} />
  41. </UserListItem>
  42. );
  43. }
  44. return <UserListItem success>{deletedMessage}</UserListItem>;
  45. }
  46. }
  47.  
  48. UserItem.propTypes = {
  49. username: PropTypes.string.isRequired,
  50. id: PropTypes.number,
  51. mutate: PropTypes.func.isRequired
  52. };
  53.  
  54. UserItem.defaultProps = {
  55. id: ""
  56. };
  57.  
  58. export default (UserItem = graphql(DELETE_USER)(UserItem));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement