import useEmblaCarousel from 'embla-carousel-react' import { useCallback, useEffect, useState } from 'react' import { useRouteLoaderData } from 'react-router' import { Button } from '~/components/ui/button' import { CarouselButton } from '~/components/ui/button-slide' import { useNewsContext } from '~/contexts/news' import type { loader } from '~/routes/_layout' import type { TNews } from '~/types/news' import { getPremiumAttribute } from '~/utils/render' export const CarouselHero = (properties: TNews) => { const { setIsSuccessOpen } = useNewsContext() const loaderData = useRouteLoaderData('routes/_layout') const userData = loaderData?.userData const { title, description, items } = properties const [emblaReference, emblaApi] = useEmblaCarousel({ loop: false }) 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, slug, isPremium }, index) => (
{title}

{title}

{content}

))}
) }