Profile.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import React from 'react';
  2. import { connect } from "react-redux";
  3. import { getUserInfo } from "../../actions/getUserInfo";
  4. import './profile.scss';
  5. import manAvatar from '../../assets/img/man.svg';
  6. import womanAvatar from '../../assets/img/woman.svg';
  7. import Sidebar from '../../components/sidebar/Sidebar';
  8. export class Profile extends React.Component {
  9. componentDidMount() {
  10. this.props.getUserInfo(JSON.parse(localStorage.user).user._id)
  11. }
  12. render() {
  13. //console.log('profileUser',JSON.parse(localStorage.user).user._id);
  14. //const user = JSON.parse(localStorage.user).user;
  15. const { user } = this.props;
  16. //console.log('user',user);
  17. return (
  18. <>
  19. <Sidebar/>
  20. <div className="container-wrap events profile">
  21. <div className="caption-page">
  22. <h5>Profile page</h5>
  23. <h2>{ user.name }</h2>
  24. </div>
  25. </div>
  26. <div className="container-wrap">
  27. <div className="profile-card">
  28. <div className="avatar">
  29. {
  30. <img src={user.sex === "female" ? womanAvatar :manAvatar } alt="avatar" />
  31. }
  32. </div>
  33. <div className="user-info">
  34. <div className="item">
  35. <span className="cap">Name:</span>
  36. <span className="info">{user.name}</span>
  37. </div>
  38. <div className="item">
  39. <span className="cap">E-mail:</span>
  40. <span className="info">{user.email}</span>
  41. </div>
  42. <div className="item">
  43. <span className="cap">Phone:</span>
  44. <span className="info">{user.phone}</span>
  45. </div>
  46. <div className="item">
  47. <span className="cap">Gender:</span>
  48. <span className="info">{user.sex}</span>
  49. </div>
  50. </div>
  51. </div>
  52. <div className="profile-tabs-wrap">
  53. <div className="tabs-main">
  54. <input id="tab1" type="radio" name="tabs" checked readOnly hidden/>
  55. <label htmlFor="tab1" className="tab-label">History</label>
  56. {/*<input id="tab2" type="radio" name="tabs" readOnly hidden/>
  57. <label htmlFor="tab2" className="tab-label">Settings</label>*/}
  58. <div className="tab-item" id="content1">
  59. <div className="history">
  60. {/* название ивента, дистанция, время, место */}
  61. <table>
  62. <thead>
  63. <tr>
  64. <th>Event</th>
  65. <th>Distance</th>
  66. <th>Time</th>
  67. <th>Rating</th>
  68. </tr>
  69. </thead>
  70. <tbody>
  71. <tr>
  72. <td>ULTRA MARATHON OF THE ATLANTIC 2019</td>
  73. <td>marathone</td>
  74. <td>3h40</td>
  75. <td>39</td>
  76. </tr>
  77. <tr>
  78. <td>CORFU HALF MARATHON</td>
  79. <td>Half marathone</td>
  80. <td>2h30</td>
  81. <td>30</td>
  82. </tr>
  83. </tbody>
  84. </table>
  85. </div>
  86. </div>
  87. {/*<div className="tab-item" id="content2">
  88. <div className="settings">
  89. </div>
  90. </div>*/}
  91. </div>
  92. </div>
  93. </div>
  94. </>
  95. )
  96. }
  97. }
  98. const mapStateToProps = state => {
  99. return {
  100. user: state.userInfo.userProfile
  101. };
  102. };
  103. export default connect(
  104. mapStateToProps,
  105. { getUserInfo }
  106. )(Profile);