import useEmblaCarousel from 'embla-carousel-react' import { useCallback, useEffect, useState } from 'react' import { Link } from 'react-router' import { Button } from '~/components/ui/button' import { CarouselButton } from '~/components/ui/button-slide' import { useNewsContext } from '~/contexts/news' import type { TNews } from '~/types/news' export const CarouselSection = (properties: TNews) => { const { setIsSuccessOpen } = useNewsContext() const { title, description, items } = properties const [emblaReference, emblaApi] = useEmblaCarousel({ loop: false, slidesToScroll: 1, align: 'start', }) const [canScrollNext, setCanScrollNext] = useState(false) const [canScrollPrevious, setCanScrollPrevious] = useState(false) const updateButtons = useCallback(() => { if (emblaApi) { setCanScrollPrevious(emblaApi.canScrollPrev()) setCanScrollNext(emblaApi.canScrollNext()) } }, [emblaApi]) useEffect(() => { if (emblaApi) { updateButtons() emblaApi.on('select', updateButtons) } }, [emblaApi, updateButtons]) const previousSlide = useCallback(() => { if (canScrollPrevious && emblaApi) emblaApi.scrollPrev() }, [emblaApi, canScrollPrevious]) const nextSlide = useCallback(() => { if (canScrollNext && emblaApi) emblaApi.scrollNext() }, [emblaApi, canScrollNext]) return (

{title}

{description}

{items.map( ({ featured, title, content, tags, slug, isPremium }, index) => (
{title}
{tags?.map((item) => ( {item} ))} {isPremium && ( Premium Content )}

{title}

{content}

), )}
) }