Reviews.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import React from 'react';
  2. import { connect } from "react-redux";
  3. import { getAllReviews, postReviewSubmit } from "../../actions/reviews";
  4. import { getAllEvents } from "../../actions/getAllEvents";
  5. import './reviews.scss';
  6. import Sidebar from '../../components/sidebar/Sidebar';
  7. import Footer from '../../components/footer/Footer';
  8. import ReviewForm from '../../components/review-form/ReviewForm';
  9. import FiltersReviews from '../../components/filtersReviews/filtersReviews';
  10. export class Reviews extends React.Component {
  11. componentDidMount() {
  12. this.props.getAllReviews();
  13. this.props.getAllEvents();
  14. }
  15. render() {
  16. const { postReviewSubmit, reviews, getAllReviews, eventsArr } = this.props;
  17. return (
  18. <>
  19. <Sidebar/>
  20. <div className="container-wrap events">
  21. <div className="caption-page">
  22. <h2>Reviews page</h2>
  23. </div>
  24. </div>
  25. <div className="container-wrap">
  26. <div className="events-filters">
  27. <h4>Reviews filter</h4>
  28. <FiltersReviews labelType="Event Title" getRequest={getAllReviews} eventTypes={eventsArr} />
  29. </div>
  30. <div className="reviews-wrap">
  31. {
  32. reviews.length !== 0 ? Array.from(reviews).reverse().map((reviewer, ind) => ind < 10 &&
  33. <div className="reviews-item" key={ind}>
  34. <div className="review-content">
  35. <div className="reviews-name">{reviewer.name}</div>
  36. <div className="reviews-date">
  37. <i className="fa fa-calendar-o" aria-hidden="true"></i>
  38. { new Date(reviewer.date).toDateString().slice(4) } {/*date */}
  39. </div>
  40. <div className="reviews-text">{reviewer.text}</div>
  41. </div>
  42. </div>
  43. ) : <p className="not-found">Not found feedback</p>
  44. }
  45. </div>
  46. <div className="reviews-wrap-add">
  47. <h3>Send your reviews</h3>
  48. <ReviewForm postReviewSubmit={postReviewSubmit} eventsArr={eventsArr}/>
  49. </div>
  50. </div>
  51. <Footer/>
  52. </>
  53. )
  54. }
  55. }
  56. const mapStateToProps = state => {
  57. return {
  58. reviews: state.allReviews.reviews,
  59. events: state.getEvents.events,
  60. eventsArr: state.getEvents.eventsArrShort
  61. };
  62. };
  63. export default connect(
  64. mapStateToProps,
  65. { getAllReviews, postReviewSubmit, getAllEvents }
  66. )(Reviews);