diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-10-11 14:07:58 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-10-11 14:07:58 +0700 |
| commit | cff358b2a7bb310e2b65cba5d843e9ffdda0f699 (patch) | |
| tree | 78ecfc988c86d0491806b94f47a22c00675dcb6b /src/lib/brand/components | |
| parent | f1d9a308f61e67f4c896608e73ac8413f61fa8af (diff) | |
Fix description and brand banner skeleton
Diffstat (limited to 'src/lib/brand/components')
| -rw-r--r-- | src/lib/brand/components/Brand.jsx | 121 |
1 files changed, 67 insertions, 54 deletions
diff --git a/src/lib/brand/components/Brand.jsx b/src/lib/brand/components/Brand.jsx index 3985b888..4afbcb3e 100644 --- a/src/lib/brand/components/Brand.jsx +++ b/src/lib/brand/components/Brand.jsx @@ -6,10 +6,10 @@ import { Pagination, Autoplay } from 'swiper' import 'swiper/css' import 'swiper/css/pagination' import 'swiper/css/autoplay' -import Divider from '@/core/components/elements/Divider/Divider' -import ImageSkeleton from '@/core/components/elements/Skeleton/ImageSkeleton' import MobileView from '@/core/components/views/MobileView' import DesktopView from '@/core/components/views/DesktopView' +import { Skeleton } from '@chakra-ui/react' +import classNames from 'classnames' const swiperBanner = { pagination: { dynamicBullets: true }, @@ -28,65 +28,77 @@ const Brand = ({ id }) => { <MobileView> <> <div> - {brand.isLoading && <ImageSkeleton />} - {brand.data?.banners?.length == 0 && ( - <Image - src='/images/default-banner-brand.jpg' - alt='Brand - Indoteknik' - width={1024} - height={512} - className='w-full h-auto' - /> - )} - {brand.data && ( - <> - <Swiper - slidesPerView={1} - pagination={swiperBanner.pagination} - modules={swiperBanner.modules} - autoplay={swiperBanner.autoplay} - className='border-b border-gray_r-6' - > - {brand.data?.banners?.map((banner, index) => ( - <SwiperSlide key={index}> + <Skeleton + isLoaded={!brand.isLoading} + aspectRatio='4/2' + className={classNames({ + 'mb-6': brand.isLoading + })} + > + {brand.data?.banners?.length == 0 && ( + <Image + src='/images/default-banner-brand.jpg' + alt='Brand - Indoteknik' + width={1024} + height={512} + className='w-full h-auto' + /> + )} + + {brand.data && ( + <> + <Swiper + slidesPerView={1} + pagination={swiperBanner.pagination} + modules={swiperBanner.modules} + autoplay={swiperBanner.autoplay} + className='border-b border-gray_r-6' + > + {brand.data?.banners?.map((banner, index) => ( + <SwiperSlide key={index}> + <Image + src={banner} + alt={`Brand ${brand.data?.name} - Indoteknik`} + width={1024} + height={512} + className='w-full h-auto' + /> + </SwiperSlide> + ))} + </Swiper> + <div className='p-4'> + <div className='text-caption-1 text-gray_r-11 mb-2'>Produk dari brand:</div> + {brand?.data?.logo && ( <Image - src={banner} - alt={`Brand ${brand.data?.name} - Indoteknik`} - width={1024} - height={512} - className='w-full h-auto' + src={brand?.data?.logo} + alt={brand?.data?.name} + className='w-32 p-2 border borde-gray_r-6 rounded' + width={256} + height={128} /> - </SwiperSlide> - ))} - </Swiper> - <div className='p-4'> - <div className='text-caption-1 text-gray_r-11 mb-2'>Produk dari brand:</div> - {brand?.data?.logo && ( - <Image - src={brand?.data?.logo} - alt={brand?.data?.name} - className='w-32 p-2 border borde-gray_r-6 rounded' - width={256} - height={128} - /> - )} - {!brand?.data?.logo && ( - <div className='bg-danger-500 text-white text-center text-caption-1 py-2 px-4 rounded w-fit'> - {brand?.data?.name} - </div> - )} - </div> - </> - )} + )} + {!brand?.data?.logo && ( + <div className='bg-danger-500 text-white text-center text-caption-1 py-2 px-4 rounded w-fit'> + {brand?.data?.name} + </div> + )} + </div> + </> + )} + </Skeleton> </div> - <Divider /> </> </MobileView> <DesktopView> <div className='container mx-auto'> - <div className='min-h-[150px]'> - {brand.isLoading && <ImageSkeleton />} + <Skeleton + isLoaded={!brand.isLoading} + aspectRatio='4/1' + className={classNames({ + 'mb-6': brand.isLoading + })} + > {brand.data?.banners?.length == 0 && ( <Image src='/images/default-banner-brand.jpg' @@ -96,6 +108,7 @@ const Brand = ({ id }) => { className='w-full h-auto' /> )} + {brand.data && ( <> <Swiper @@ -137,7 +150,7 @@ const Brand = ({ id }) => { </div> </> )} - </div> + </Skeleton> </div> </DesktopView> </> |
