summaryrefslogtreecommitdiff
path: root/src/lib/brand/components/Brand.jsx
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-10-11 14:07:58 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-10-11 14:07:58 +0700
commitcff358b2a7bb310e2b65cba5d843e9ffdda0f699 (patch)
tree78ecfc988c86d0491806b94f47a22c00675dcb6b /src/lib/brand/components/Brand.jsx
parentf1d9a308f61e67f4c896608e73ac8413f61fa8af (diff)
Fix description and brand banner skeleton
Diffstat (limited to 'src/lib/brand/components/Brand.jsx')
-rw-r--r--src/lib/brand/components/Brand.jsx121
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>
</>