'use client' import Image from 'next/image' import Link from 'next/link' import { FC, useMemo } from 'react' import { IBanner } from '@/types/landing.types' import { useGetLanding } from '@/app/home/hooks/useHomeData' const Banners3: FC = () => { const { data } = useGetLanding() const { desktopBanners, mobileBanners } = useMemo(() => { const allBanners = data?.results?.banners ?? [] const sortByOrder = (items: IBanner[]) => [...items].sort((firstBanner, secondBanner) => firstBanner.order - secondBanner.order) const groupByDisplayLocation = (displayLocation: IBanner['displayLocation']) => sortByOrder(allBanners.filter((banner) => banner.displayLocation === displayLocation)) return { desktopBanners: groupByDisplayLocation('desktop'), mobileBanners: groupByDisplayLocation('mobile'), } }, [data?.results?.banners]) const renderLayout = (banners: IBanner[]) => { if (banners.length < 3) return null const [firstBanner, secondBanner, thirdBanner] = banners if (!firstBanner?.imageUrl || !secondBanner?.imageUrl || !thirdBanner?.imageUrl) return null return (
{firstBanner.altText}
{secondBanner.altText}
{thirdBanner.altText}
) } return ( <>
{renderLayout(desktopBanners)}
{renderLayout(mobileBanners)}
) } export default Banners3