From d9652e77733a24b329f8d849e700222f06c4331e Mon Sep 17 00:00:00 2001
From: "HATEC\\SPVDEV001" <tri.susilo@altama.co.id>
Date: Fri, 4 Aug 2023 13:24:58 +0700
Subject: add image backgournd

---
 .../product/components/Product/ProductMobile.jsx   | 122 ++++++++++++++-------
 1 file changed, 85 insertions(+), 37 deletions(-)

(limited to 'src/lib/product/components/Product/ProductMobile.jsx')

diff --git a/src/lib/product/components/Product/ProductMobile.jsx b/src/lib/product/components/Product/ProductMobile.jsx
index 2edd1a5f..f0264542 100644
--- a/src/lib/product/components/Product/ProductMobile.jsx
+++ b/src/lib/product/components/Product/ProductMobile.jsx
@@ -18,6 +18,8 @@ import PromotionType from '@/lib/promotinProgram/components/PromotionType'
 import { gtagAddToCart } from '@/core/utils/googleTag'
 import odooApi from '@/core/api/odooApi'
 import { Button, Spinner } from 'flowbite-react'
+import ImageNext from 'next/image'
+import CountDown2 from '@/core/components/elements/CountDown/CountDown2'
 
 const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
   const router = useRouter()
@@ -30,6 +32,7 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
   const [isLoadingSLA, setIsLoadingSLA] = useState(true)
   const [promotionType, setPromotionType] = useState(false)
   const [promotionActiveId, setPromotionActiveId] = useState(null)
+  const [backgorundFlashSale, setBackgorundFlashSale] = useState(null)
 
   const getLowestPrice = () => {
     const prices = product.variants.map((variant) => variant.price)
@@ -39,6 +42,14 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
     return lowest
   }
 
+  useEffect(() => {
+    const getBackgound = async () => {
+      const get = await odooApi('GET', '/api/v1/banner?type=flash-sale-background-banner')
+      setBackgorundFlashSale(get[0].image)
+    }
+    getBackgound()
+  }, [])
+
   const [activeVariant, setActiveVariant] = useState({
     id: null,
     code: product.code,
@@ -69,11 +80,11 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
       product.variants = variantData
 
       setIsLoadingSLA(false)
-      if(product.variants.length === 1){
+      if (product.variants.length === 1) {
         setActiveVariant({
           id: product.variants[0].id,
           code: product.variants[0].code,
-          name: product.variants[0].parent.name ,
+          name: product.variants[0].parent.name,
           price: product.variants[0].price,
           stock: product.variants[0].stock,
           weight: product.variants[0].weight,
@@ -143,7 +154,7 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
       quantity,
       programLineId: promotionActiveId,
       selected: true,
-      source : 'buy'
+      source: 'buy'
     })
     router.push(`/shop/checkout?source=buy`)
   }
@@ -156,11 +167,44 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
 
   return (
     <MobileView>
-      <Image
-        src={product.image}
-        alt={product.name}
-        className='h-72 object-contain object-center w-full border-b border-gray_r-4'
-      />
+      <div className='relative'>
+        {product?.flashSale?.remainingTime > 0 && (
+          <div className={`absolute bottom-0 w-full`}>
+            <div className='absolute bottom-0 w-full'>
+              <ImageNext src={backgorundFlashSale || '/images/GAMBAR-BG-FLASH-SALE.jpg'} width={1000} height={100} />
+            </div>
+            <div className='relative'>
+              <div className='flex gap-x-2 items-center p-2'>
+                <div className='bg-yellow-400 rounded-full p-1 h-9 w-20 flex items-center justify-center '>
+                  <span className='text-lg font-bold'>
+                    {product.lowestPrice.discountPercentage}%
+                  </span>
+                </div>
+                <div
+                  className={`bg-red-600 border border-solid border-yellow-400 rounded-full h-9 p-2 flex w-[50%] items-center justify-center gap-x-4`}
+                >
+                  <ImageNext
+                    src='/images/ICON_FLASH_SALE_WEBSITE_INDOTEKNIK.svg'
+                    width={17}
+                    height={10}
+                  />
+                  <span className='text-white text-lg font-semibold'>
+                    {product.flashSale.tag || 'FLASH SALE'}
+                  </span>
+                </div>
+                <div>
+                  <CountDown2 initialTime={product.flashSale.remainingTime} />
+                </div>
+              </div>
+            </div>
+          </div>
+        )}
+        <Image
+          src={product.image}
+          alt={product.name}
+          className='h-72 object-contain object-center w-full border-b border-gray_r-4'
+        />
+      </div>
 
       <div className='p-4'>
         <div className='flex items-end mb-2'>
@@ -294,40 +338,44 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
                   <Spinner aria-label='Alternate spinner button example' />
                   <span className='pl-3'>Loading...</span>
                 </Button>
-              ) : selectedVariant ? activeVariant?.sla?.slaDate != '-' ? (
-                <button
-                  type='button'
-                  title={`Masa Persiapan Barang ${activeVariant?.sla?.slaDate}`}
-                  className={`flex gap-x-1 items-center p-2 h-8 rounded-lg w-full ${
-                    activeVariant?.sla?.slaDate === 'indent' ? 'bg-indigo-900' : 'btn-light'
-                  }`}
-                >
-                  <div
-                    className={`flex-1 text-sm  ${
-                      activeVariant?.sla?.slaDate === 'indent' ? 'text-white' : ''
+              ) : selectedVariant ? (
+                activeVariant?.sla?.slaDate != '-' ? (
+                  <button
+                    type='button'
+                    title={`Masa Persiapan Barang ${activeVariant?.sla?.slaDate}`}
+                    className={`flex gap-x-1 items-center p-2 h-8 rounded-lg w-full ${
+                      activeVariant?.sla?.slaDate === 'indent' ? 'bg-indigo-900' : 'btn-light'
                     }`}
                   >
-                    {activeVariant?.sla?.slaDate}
-                  </div>
-                  <div className='flex-end'>
-                    <svg
-                      aria-hidden='true'
-                      fill='none'
-                      stroke='currentColor'
-                      stroke-width='1.5'
-                      className={`w-7 h-7 text-sm ${
+                    <div
+                      className={`flex-1 text-sm  ${
                         activeVariant?.sla?.slaDate === 'indent' ? 'text-white' : ''
                       }`}
                     >
-                      <path
-                        d='M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z'
-                        stroke-linecap='round'
-                        stroke-linejoin='round'
-                      ></path>
-                    </svg>
-                  </div>
-                </button>
-              ):('-') : (
+                      {activeVariant?.sla?.slaDate}
+                    </div>
+                    <div className='flex-end'>
+                      <svg
+                        aria-hidden='true'
+                        fill='none'
+                        stroke='currentColor'
+                        stroke-width='1.5'
+                        className={`w-7 h-7 text-sm ${
+                          activeVariant?.sla?.slaDate === 'indent' ? 'text-white' : ''
+                        }`}
+                      >
+                        <path
+                          d='M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z'
+                          stroke-linecap='round'
+                          stroke-linejoin='round'
+                        ></path>
+                      </svg>
+                    </div>
+                  </button>
+                ) : (
+                  '-'
+                )
+              ) : (
                 '-'
               )}
             </span>
-- 
cgit v1.2.3


From 9595223471946520f5c156e24eceb577fae4c901 Mon Sep 17 00:00:00 2001
From: "HATEC\\SPVDEV001" <tri.susilo@altama.co.id>
Date: Fri, 4 Aug 2023 13:36:47 +0700
Subject: add backgorund image mobile

---
 src/lib/product/components/Product/ProductMobile.jsx | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

(limited to 'src/lib/product/components/Product/ProductMobile.jsx')

diff --git a/src/lib/product/components/Product/ProductMobile.jsx b/src/lib/product/components/Product/ProductMobile.jsx
index f0264542..d25d0861 100644
--- a/src/lib/product/components/Product/ProductMobile.jsx
+++ b/src/lib/product/components/Product/ProductMobile.jsx
@@ -45,7 +45,9 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
   useEffect(() => {
     const getBackgound = async () => {
       const get = await odooApi('GET', '/api/v1/banner?type=flash-sale-background-banner')
-      setBackgorundFlashSale(get[0].image)
+      if (get.length > 0) {
+        setBackgorundFlashSale(get[0].image)
+      }
     }
     getBackgound()
   }, [])
@@ -171,7 +173,11 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
         {product?.flashSale?.remainingTime > 0 && (
           <div className={`absolute bottom-0 w-full`}>
             <div className='absolute bottom-0 w-full'>
-              <ImageNext src={backgorundFlashSale || '/images/GAMBAR-BG-FLASH-SALE.jpg'} width={1000} height={100} />
+              <ImageNext
+                src={backgorundFlashSale || '/images/GAMBAR-BG-FLASH-SALE.jpg'}
+                width={1000}
+                height={100}
+              />
             </div>
             <div className='relative'>
               <div className='flex gap-x-2 items-center p-2'>
-- 
cgit v1.2.3

