user.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. // componentDidUpdate(){
  18. // if(this.props.orders.length > 0 &&)
  19. // // console.log('did update', this.props.orders)
  20. // this.props.getUserOrders(this.props.currentUser)
  21. // }
  22. componentDidUpdate(prevProps) {
  23. if(this.props.orders.length > 0 )
  24. if(prevProps.orders !== this.props.orders)
  25. this.props.getUserOrders(this.props.currentUser)
  26. }
  27. render() {
  28. console.log(this.props.userOrdersArray)
  29. const { currentUser,changeUserUserForm, changeInputValueUserUserForm,putUser,userOrdersArray } = this.props
  30. return (
  31. <div className="main">
  32. <div className="info-wrap">
  33. <h2>Добро пожаловать в личный кабинет, {currentUser.firstName}!</h2>
  34. <div className="btn-box">
  35. <Link to='/user/orders' className = "btn link admin" >Мои заказы</Link>
  36. <Link to='/user/info' className = "btn link admin">Редактировать профиль</Link>
  37. </div>
  38. <Switch>
  39. <Route path='/user/orders' render={() => <UserOrders
  40. data={ userOrdersArray}
  41. />} />
  42. <Route path='/user/info' render={() => <UserInfo
  43. user={currentUser}
  44. changeUserUserForm = {changeUserUserForm}
  45. changeInputValueUserUserForm={changeInputValueUserUserForm}
  46. putUser= {putUser}
  47. />} />
  48. </Switch>
  49. </div>
  50. </div>
  51. );
  52. }
  53. }
  54. const mapStateToProps = state => {
  55. return {
  56. currentUser: state.auth.user,
  57. changeUserUserForm: state.auth.changeUserForm,
  58. orders: state.orders.orders,
  59. users:state.user.users,
  60. services: state.services.services,
  61. doctors:state.app.doctors,
  62. userOrdersArray: state.orders.userOrdersArray
  63. }
  64. }
  65. export default connect(mapStateToProps, { changeInputValueUserUserForm, putUser, getOrders,getUserOrders })(UserContainer);