import Link from '@/core/components/elements/Link/Link'; import Image from 'next/image'; import { bannerApi } from '@/api/bannerApi'; import useDevice from '@/core/hooks/useDevice'; import { Swiper, SwiperSlide } from 'swiper/react'; import BannerPromoSkeleton from '../components/Skeleton/BannerPromoSkeleton'; import { useEffect, useState } from 'react'; const { useQuery } = require('react-query'); const BannerSection = () => { const { isMobile, isDesktop } = useDevice(); const [data, setData] = useState(null); const [shouldFetch, setShouldFetch] = useState(false); useEffect(() => { const localData = localStorage.getItem('Homepage_promotionProgram'); if (localData) { setData(JSON.parse(localData)); }else{ setShouldFetch(true); } },[]) const getPromotionProgram = useQuery( 'promotionProgram', bannerApi({ type: 'banner-promotion' }),{ enabled: shouldFetch, onSuccess: (data) => { if (data) { localStorage.setItem('Homepage_promotionProgram', JSON.stringify(data)); setData(data); } } } ); const promotionProgram = data if (getPromotionProgram?.isLoading && !data) { return ; } return (

{' '} Promo Tersedia

{isDesktop && ( Lihat Semua )} {isMobile && ( Lihat Semua )}
{isDesktop && promotionProgram && promotionProgram?.length > 0 && (
{promotionProgram?.map((banner) => ( {banner.name} ))}
)} {isMobile && ( {promotionProgram?.map((banner) => ( {banner.name} ))} )}
); }; export default BannerSection;