Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. import React, {Component} from 'react';
  2. import {observer} from 'mobx-react';
  3. import classNames from 'classnames';
  4. import Slider from 'react-slick';
  5. import {FormattedMessage} from 'react-intl';
  6.  
  7. import RootStore from '../../../stores/RootStore';
  8. import {sliderSettings} from '../../../stores/Home';
  9.  
  10. import ProductItem from './ProductItem';
  11.  
  12. import {scrollIntoView} from '../../../helpers';
  13.  
  14. import 'slick-carousel/slick/slick.css';
  15. import 'slick-carousel/slick/slick-theme.css';
  16. import './ProductList.scss';
  17.  
  18. @observer
  19. class ProductList extends Component {
  20. componentDidMount() {
  21. scrollIntoView('.product-list__row');
  22. }
  23.  
  24. render() {
  25. const {filters, displayedProductGroups, selectedFilters, selectedProductId, selectedGeneralGroupId, toggleFilter} = RootStore.home;
  26. return (
  27. <section className={classNames('product-list home-section', {
  28. 'product-list--show': selectedGeneralGroupId,
  29. 'product-list--empty': !Boolean(displayedProductGroups.length)
  30. })}>
  31. {
  32. selectedGeneralGroupId && Boolean(displayedProductGroups.length) &&
  33. <div className="product-list__row">
  34. <h2 className="product-list__title">
  35. <FormattedMessage id="home.filter"/>
  36. </h2>
  37.  
  38. <ul className="product-list__options">
  39. {
  40. filters.map(tag =>
  41. <li className={classNames('option', {
  42. 'option--active': selectedFilters.includes(tag)
  43. })} key={tag}
  44. onClick={toggleFilter(tag)}>
  45. {tag}
  46. </li>
  47. )
  48. }
  49. </ul>
  50. </div>
  51.  
  52. }
  53.  
  54. {Boolean(displayedProductGroups.length) ?
  55. <Slider {...sliderSettings}>
  56. {displayedProductGroups.map(product => <ProductItem product={product} selectedProductId={selectedProductId}
  57. key={product._id}/>)}
  58. </Slider> :
  59. <p className="not-found">Not found</p>
  60. }
  61. </section>
  62. );
  63. }
  64. }
  65.  
  66. export default ProductList;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement