diff --git a/src/components/Feed/Row2.tsx b/src/components/Feed/Row2.tsx index c009838b..1c0c8b2c 100644 --- a/src/components/Feed/Row2.tsx +++ b/src/components/Feed/Row2.tsx @@ -8,7 +8,7 @@ const x = [ ['8', '4'] ] -export const Row2 = (props: { articles: Shout[] }) => { +export const Row2 = (props: { articles: Shout[]; isEqual?: boolean }) => { const [y, setY] = createSignal(0) createComputed(() => setY(Math.floor(Math.random() * x.length))) @@ -20,8 +20,11 @@ export const Row2 = (props: { articles: Shout[] }) => { {(a, i) => { return ( -
- +
+
) diff --git a/src/components/Feed/Slider.scss b/src/components/Feed/Slider.scss index b3131f12..3b739647 100644 --- a/src/components/Feed/Slider.scss +++ b/src/components/Feed/Slider.scss @@ -1,15 +1,18 @@ .swiper-slide { - height: 0 !important; min-height: 0 !important; margin-bottom: 0 !important; - padding-top: 100%; - @include media-breakpoint-up(sm) { - padding-top: 56.2% !important; - } + .cards-with-cover & { + height: 0 !important; + padding-top: 100%; - @include media-breakpoint-up(md) { - padding-top: 35% !important; + @include media-breakpoint-up(sm) { + padding-top: 56.2% !important; + } + + @include media-breakpoint-up(md) { + padding-top: 35% !important; + } } } diff --git a/src/components/Feed/Slider.tsx b/src/components/Feed/Slider.tsx index 97529b77..b398f78d 100644 --- a/src/components/Feed/Slider.tsx +++ b/src/components/Feed/Slider.tsx @@ -12,6 +12,8 @@ import { Icon } from '../Nav/Icon' interface SliderProps { title?: string articles: Shout[] + slidesPerView?: number + isCardsWithCover?: boolean } export default (props: SliderProps) => { @@ -19,12 +21,14 @@ export default (props: SliderProps) => { let pagEl: HTMLDivElement | undefined let nextEl: HTMLDivElement | undefined let prevEl: HTMLDivElement | undefined + + const isCardsWithCover = typeof props.isCardsWithCover === 'boolean' ? props.isCardsWithCover : true + const opts: SwiperOptions = { roundLengths: true, loop: true, centeredSlides: true, slidesPerView: 1, - spaceBetween: 8, modules: [Navigation, Pagination], speed: 500, navigation: { nextEl, prevEl }, @@ -35,7 +39,12 @@ export default (props: SliderProps) => { }, breakpoints: { 768: { - slidesPerView: 1.66666 + slidesPerView: props.slidesPerView > 0 ? props.slidesPerView : 1.66666, + spaceBetween: isCardsWithCover ? 8 : 26 + }, + 992: { + slidesPerView: props.slidesPerView > 0 ? props.slidesPerView : 1.66666, + spaceBetween: isCardsWithCover ? 8 : 52 } } } @@ -49,12 +58,13 @@ export default (props: SliderProps) => { } }) const articles = createMemo(() => props.articles) + return (

{props.title}

-
+
{(a: Shout) => ( @@ -63,7 +73,7 @@ export default (props: SliderProps) => { settings={{ additionalClass: 'swiper-slide', isFloorImportant: true, - isWithCover: true, + isWithCover: isCardsWithCover, nodate: true }} /> diff --git a/src/components/Views/Topic.tsx b/src/components/Views/Topic.tsx index a2760967..cfe9143b 100644 --- a/src/components/Views/Topic.tsx +++ b/src/components/Views/Topic.tsx @@ -26,7 +26,7 @@ interface TopicProps { topicSlug: string } -export const PRERENDERED_ARTICLES_COUNT = 21 +export const PRERENDERED_ARTICLES_COUNT = 28 const LOAD_MORE_PAGE_SIZE = 9 // Row3 + Row3 + Row3 export const TopicView = (props: TopicProps) => { @@ -112,7 +112,7 @@ export const TopicView = (props: TopicProps) => {
- + { /> 5}> - - - - - + + + + + + +