user.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import React, { Component } from "react";
  2. import { connect } from "react-redux";
  3. import { Link } from "react-router-dom";
  4. import { Switch, Route } from "react-router-dom";
  5. import UserInfo from "../components/userInfo";
  6. import UserOrders from "../components/userOrders";
  7. import { getUserOrders, getOrders } from "../actions/orders";
  8. import { changeInputValueUserUserForm } from "../actions/auth";
  9. import { putUser } from "../actions/user";
  10. class UserContainer extends Component {
  11. componentDidMount() {
  12. this.props.getOrders({
  13. doctors: this.props.doctors,
  14. services: this.props.services,
  15. users: this.props.users
  16. });
  17. }
  18. // componentDidUpdate(){
  19. // if(this.props.orders.length > 0 &&)
  20. // // console.log('did update', this.props.orders)
  21. // this.props.getUserOrders(this.props.currentUser)
  22. // }
  23. componentDidUpdate(prevProps) {
  24. if (this.props.orders.length > 0)
  25. if (prevProps.orders !== this.props.orders)
  26. this.props.getUserOrders(this.props.currentUser);
  27. }
  28. render() {
  29. const {
  30. currentUser,
  31. changeUserUserForm,
  32. changeInputValueUserUserForm,
  33. putUser,
  34. userOrdersArray
  35. } = this.props;
  36. return (
  37. <div className="main">
  38. <div className="info-wrap">
  39. <h2>Добро пожаловать в личный кабинет, {currentUser.firstName}!</h2>
  40. <div className="btn-box">
  41. <Link to="/user/orders" className="btn link admin user-link">
  42. Мои заказы
  43. </Link>
  44. <Link to="/user/info" className="btn link admin user-link">
  45. Редактировать профиль
  46. </Link>
  47. </div>
  48. <Switch>
  49. <Route
  50. path="/user/orders"
  51. render={() => <UserOrders data={userOrdersArray} />}
  52. />
  53. <Route
  54. path="/user/info"
  55. render={() => (
  56. <UserInfo
  57. user={currentUser}
  58. changeUserUserForm={changeUserUserForm}
  59. changeInputValueUserUserForm={changeInputValueUserUserForm}
  60. putUser={putUser}
  61. />
  62. )}
  63. />
  64. </Switch>
  65. </div>
  66. </div>
  67. );
  68. }
  69. }
  70. const mapStateToProps = state => {
  71. return {
  72. currentUser: state.auth.user,
  73. changeUserUserForm: state.auth.changeUserForm,
  74. orders: state.orders.orders,
  75. users: state.user.users,
  76. services: state.services.services,
  77. doctors: state.app.doctors,
  78. userOrdersArray: state.orders.userOrdersArray
  79. };
  80. };
  81. export default connect(
  82. mapStateToProps,
  83. { changeInputValueUserUserForm, putUser, getOrders, getUserOrders }
  84. )(UserContainer);