From 5a2cc16003e1fbd6a31e24388f6471c9dd7e062d Mon Sep 17 00:00:00 2001
From: Rafi Zadanly <zadanlyr@gmail.com>
Date: Wed, 11 Oct 2023 14:07:58 +0700
Subject: Fix description and brand banner skeleton

---
 src/lib/brand/components/Brand.jsx | 121 ++++++++++++++++++++-----------------
 1 file changed, 67 insertions(+), 54 deletions(-)

(limited to 'src/lib/brand/components/Brand.jsx')

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>
     </>
-- 
cgit v1.2.3

