MoreInfo.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React from 'react';
  2. import {Link} from 'react-router-dom'
  3. import {connect} from 'react-redux'
  4. export class MoreInfo extends React.Component {
  5. render() {
  6. const {match,doctors,services} = this.props;
  7. const doctor = doctors.find(el => el._id === match.params.doctor);
  8. const service = services.find(el => el._id === match.params.service);
  9. return (
  10. <>
  11. <div className="main">
  12. {doctor &&
  13. <div className = "info-wrap">
  14. <div className="info">
  15. <div className="info-item">
  16. <img src={`../.${doctor.photo}`} alt={doctor.name}/>
  17. </div>
  18. <div className="info-item info-desc">
  19. <h3> {doctor.name} </h3>
  20. <p className = "highlights">{doctor.profession}</p>
  21. <p className = "highlights">Опыт работы более {new Date().toISOString().split('T')[0].split('-')[0] - doctor.experience.split('T')[0].split('-')[0]} лет</p>
  22. {doctor.skillsDescription.split ("<br>").map ( (el, index) => ( <p key= {index}> { el } </p>) ) }
  23. {match.params.flag === 'true' && <Link to={`/appointment/${doctor._id}`} className = "btn link">Записаться на приём</Link>}
  24. </div>
  25. </div>
  26. </div>}
  27. {service &&
  28. <div className = "info-wrap">
  29. {service.name}
  30. <p>Duration: {service.duration} h</p>
  31. <p>{service.description}</p>
  32. <p>Price: {service.price} грн.</p>
  33. {match.params.flag === 'true' && <Link to={`/appointment/${service._id}`} className = "btn link admin">Записаться на приём</Link>}
  34. </div>}
  35. </div>
  36. </>
  37. );
  38. }
  39. }
  40. const mapStateToProps = state => {
  41. return {
  42. doctors:state.app.doctors,
  43. services:state.services.services
  44. }
  45. };
  46. const mapDispatchToProps = {
  47. };
  48. export default connect (mapStateToProps,mapDispatchToProps)(MoreInfo)