UNPKG

@findify/react-components

Version:
35 lines (34 loc) 1.13 kB
/** * @module components/Dropdown */ import Swiper from 'components/Swiper'; import ProductCard from 'components/Cards/Product'; import Text from 'components/Text'; import useColumns from 'helpers/useColumns'; import { useItems } from '@findify/react-connect'; import useScrollOnChange from 'helpers/useScrollOnChange'; import styles from 'layouts/Recommendation/Slider/styles.css'; const getSliderOptions = (config) => { const columns = useColumns(config.getIn(['breakpoints', 'grid'])); return { spaceBetween: 12, slidesPerView: 12 / Number(columns), }; }; export default ({ theme = styles }) => { const { items, config } = useItems(); const options = getSliderOptions(config); useScrollOnChange(items); if (!items?.size) return null; return (<> <Text title component="p" className={theme.title}> {config.get('title')} </Text> <Swiper {...options} slot={config.get('slot')}> {items .map((item) => (<ProductCard key={item.hashCode()} item={item} config={config.get('product')}/>)) .toArray()} </Swiper> </>); };