import React from 'react'; import Title from 'ts/components/Title'; import localization from 'ts/helpers/Localization'; import Banner from 'ts/components/Banner'; import Card from './components/Card'; import CardForPrint from './components/CardForPrint'; import recommendationStore from './store/index'; import styleCard from './styles/card.module.scss'; import style from './styles/index.module.scss'; function addBannerInRandomIndex(list: any[]) { const className = `${styleCard.recommendations_card} ${styleCard.recommendations_card_banner}`; const item = (); const index = Math.floor(Math.random() * list.length); const last = list.splice(index); return [...list, item, ...last]; } interface IRecommendationsProps { recommendations: any[]; mode?: string; } function Recommendations({ recommendations, mode, }: IRecommendationsProps) { let cards = (recommendations || []) .filter(item => item) .map((recommendation) => (mode === 'print' ? ( ) : ( { recommendationStore.open(recommendation); }} /> ))); if (!cards.length) return null; if (mode !== 'print') { cards = addBannerInRandomIndex(cards); } const title = localization.get('recommendations.title'); const className = mode === 'print' ? `${style.recommendations_container} scroll_x ${style.recommendations_container_for_print}` : `${style.recommendations_container} scroll_x`; return ( <> event.stopPropagation()} onMouseDown={(event) => event.stopPropagation()} > {cards} > ); } Recommendations.defaultProps = { mode: undefined, }; export default Recommendations;