From f9f1fdf83c2b6ed5c1d85d7418d45aeed9b05c77 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Wed, 5 Jun 2024 15:24:42 +0700
Subject: <iman> add feature SNI-TKDR

---
 src-migrate/modules/cart/components/Item.tsx | 59 ++++++++++++++++++++++++++--
 1 file changed, 55 insertions(+), 4 deletions(-)

(limited to 'src-migrate/modules/cart/components/Item.tsx')

diff --git a/src-migrate/modules/cart/components/Item.tsx b/src-migrate/modules/cart/components/Item.tsx
index 6ded6373..fed11eb0 100644
--- a/src-migrate/modules/cart/components/Item.tsx
+++ b/src-migrate/modules/cart/components/Item.tsx
@@ -4,7 +4,8 @@ import { Skeleton, SkeletonProps, Tooltip } from '@chakra-ui/react'
 import { InfoIcon } from 'lucide-react'
 import Image from 'next/image'
 import Link from 'next/link'
-
+import ImageNext from 'next/image';
+import { useEffect, useState } from 'react';
 import { PROMO_CATEGORY } from '~/constants/promotion'
 import formatCurrency from '~/libs/formatCurrency'
 import { createSlug } from '~/libs/slug'
@@ -20,6 +21,31 @@ type Props = {
 }
 
 const CartItem = ({ item, editable = true }: Props) => {
+  const [isSni, setIsSni] = useState(false);
+  const [isTkdn, setTkdn] = useState(false);
+
+  useEffect(() => {
+    const fetchData = async () => {
+      try {
+        const responseSni = await fetch('URL_API_SNI');
+        const dataSni = await responseSni.json();
+        setIsSni(dataSni && dataSni.sni);
+
+        const responseTkdn = await fetch('URL_API_TKDN');
+        const dataTkdn = await responseTkdn.json();
+        setTkdn(dataTkdn && dataTkdn.tkdn);
+      } catch (error) {
+        console.error('Error fetching data:', error);
+        setIsSni(false);
+        setTkdn(false);
+      }
+    };
+
+    fetchData();
+
+    return () => {};
+  }, []);
+
   return (
     <div className={style.wrapper}>
       {item.cart_type === 'promotion' && (
@@ -46,7 +72,7 @@ const CartItem = ({ item, editable = true }: Props) => {
         {editable && <CartItemSelect item={item} />}
         <div className='w-4' />
 
-        <CartItem.Image item={item} />
+        <CartItem.Image item={item} isSni={isSni} isTkdn={isTkdn} />
 
         <div className={style.details}>
           <CartItem.Name item={item} />
@@ -98,7 +124,7 @@ const CartItem = ({ item, editable = true }: Props) => {
   )
 }
 
-CartItem.Image = function CartItemImage({ item }: { item: CartItemProps }) {
+CartItem.Image = function CartItemImage({ item, isSni, isTkdn }: { item: CartItemProps, isSni: boolean, isTkdn: boolean }) {
   const image = item?.image || item?.parent?.image
 
   return (
@@ -116,6 +142,31 @@ CartItem.Image = function CartItemImage({ item }: { item: CartItemProps }) {
           className={style.image}
         >
           {image && <Image src={image} alt={item.name} width={128} height={128} />}
+          
+          <div className="relative top-2 right-4 flex">
+            {/* <div className="gambarB mr-1 bg-red-100"> */}
+              {!isSni && (
+                <ImageNext
+                  src="/images/sni-logo.png"
+                  alt="SNI Logo"
+                  className="w-4 h-3 object-contain object-top sm:h-4"
+                  width={50}
+                  height={50}
+                />
+              )}
+            {/* </div> */}
+            {/* <div className="gambarC bg-red-500"> */}
+              {!isTkdn && (
+                <ImageNext
+                  src="/images/TKDN.png"
+                  alt="TKDN"
+                  className="w-10 h-5 object-contain object-top ml-1 mr-1 sm:h-10"
+                  width={50}
+                  height={50}
+                />
+              )}
+            {/* </div> */}
+          </div>
           {!image && <div className={style.noImage}>No Image</div>}
         </Link>
       )}
@@ -153,4 +204,4 @@ CartItem.Skeleton = function CartItemSkeleton(props: SkeletonProps & { count: nu
   ))
 }
 
-export default CartItem
\ No newline at end of file
+export default CartItem
-- 
cgit v1.2.3


From d941c429ce185d6bb67c603d2bdb3017cdd79ae8 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Thu, 6 Jun 2024 09:42:23 +0700
Subject: <iman> add feature SNI-TKDN

---
 src-migrate/modules/cart/components/Item.tsx | 59 ++--------------------------
 1 file changed, 4 insertions(+), 55 deletions(-)

(limited to 'src-migrate/modules/cart/components/Item.tsx')

diff --git a/src-migrate/modules/cart/components/Item.tsx b/src-migrate/modules/cart/components/Item.tsx
index fed11eb0..6ded6373 100644
--- a/src-migrate/modules/cart/components/Item.tsx
+++ b/src-migrate/modules/cart/components/Item.tsx
@@ -4,8 +4,7 @@ import { Skeleton, SkeletonProps, Tooltip } from '@chakra-ui/react'
 import { InfoIcon } from 'lucide-react'
 import Image from 'next/image'
 import Link from 'next/link'
-import ImageNext from 'next/image';
-import { useEffect, useState } from 'react';
+
 import { PROMO_CATEGORY } from '~/constants/promotion'
 import formatCurrency from '~/libs/formatCurrency'
 import { createSlug } from '~/libs/slug'
@@ -21,31 +20,6 @@ type Props = {
 }
 
 const CartItem = ({ item, editable = true }: Props) => {
-  const [isSni, setIsSni] = useState(false);
-  const [isTkdn, setTkdn] = useState(false);
-
-  useEffect(() => {
-    const fetchData = async () => {
-      try {
-        const responseSni = await fetch('URL_API_SNI');
-        const dataSni = await responseSni.json();
-        setIsSni(dataSni && dataSni.sni);
-
-        const responseTkdn = await fetch('URL_API_TKDN');
-        const dataTkdn = await responseTkdn.json();
-        setTkdn(dataTkdn && dataTkdn.tkdn);
-      } catch (error) {
-        console.error('Error fetching data:', error);
-        setIsSni(false);
-        setTkdn(false);
-      }
-    };
-
-    fetchData();
-
-    return () => {};
-  }, []);
-
   return (
     <div className={style.wrapper}>
       {item.cart_type === 'promotion' && (
@@ -72,7 +46,7 @@ const CartItem = ({ item, editable = true }: Props) => {
         {editable && <CartItemSelect item={item} />}
         <div className='w-4' />
 
-        <CartItem.Image item={item} isSni={isSni} isTkdn={isTkdn} />
+        <CartItem.Image item={item} />
 
         <div className={style.details}>
           <CartItem.Name item={item} />
@@ -124,7 +98,7 @@ const CartItem = ({ item, editable = true }: Props) => {
   )
 }
 
-CartItem.Image = function CartItemImage({ item, isSni, isTkdn }: { item: CartItemProps, isSni: boolean, isTkdn: boolean }) {
+CartItem.Image = function CartItemImage({ item }: { item: CartItemProps }) {
   const image = item?.image || item?.parent?.image
 
   return (
@@ -142,31 +116,6 @@ CartItem.Image = function CartItemImage({ item, isSni, isTkdn }: { item: CartIte
           className={style.image}
         >
           {image && <Image src={image} alt={item.name} width={128} height={128} />}
-          
-          <div className="relative top-2 right-4 flex">
-            {/* <div className="gambarB mr-1 bg-red-100"> */}
-              {!isSni && (
-                <ImageNext
-                  src="/images/sni-logo.png"
-                  alt="SNI Logo"
-                  className="w-4 h-3 object-contain object-top sm:h-4"
-                  width={50}
-                  height={50}
-                />
-              )}
-            {/* </div> */}
-            {/* <div className="gambarC bg-red-500"> */}
-              {!isTkdn && (
-                <ImageNext
-                  src="/images/TKDN.png"
-                  alt="TKDN"
-                  className="w-10 h-5 object-contain object-top ml-1 mr-1 sm:h-10"
-                  width={50}
-                  height={50}
-                />
-              )}
-            {/* </div> */}
-          </div>
           {!image && <div className={style.noImage}>No Image</div>}
         </Link>
       )}
@@ -204,4 +153,4 @@ CartItem.Skeleton = function CartItemSkeleton(props: SkeletonProps & { count: nu
   ))
 }
 
-export default CartItem
+export default CartItem
\ No newline at end of file
-- 
cgit v1.2.3


From d584d4620ff633e68fa37f98089d9056012e7b21 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Thu, 11 Jul 2024 14:10:18 +0700
Subject: <iman> add image promotion on keranjang

---
 src-migrate/modules/cart/components/Item.tsx | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

(limited to 'src-migrate/modules/cart/components/Item.tsx')

diff --git a/src-migrate/modules/cart/components/Item.tsx b/src-migrate/modules/cart/components/Item.tsx
index 6ded6373..a757ba37 100644
--- a/src-migrate/modules/cart/components/Item.tsx
+++ b/src-migrate/modules/cart/components/Item.tsx
@@ -100,13 +100,15 @@ const CartItem = ({ item, editable = true }: Props) => {
 
 CartItem.Image = function CartItemImage({ item }: { item: CartItemProps }) {
   const image = item?.image || item?.parent?.image
+  const imageProgram = item?.image_program[0] || item?.parent?.image
+  
 
-  return (
+  return (  
     <>
       {item.cart_type === 'promotion' && (
         <div className={style.image}>
-          {image && <Image src={image} alt={item.name} width={128} height={128} />}
-          {!image && <div className={style.noImage}>No Image</div>}
+          {imageProgram && <Image src={imageProgram} alt={item.name} width={128} height={128} />}
+          {!imageProgram && <div className={style.noImage}>No Image</div>}
         </div>
       )}
 
-- 
cgit v1.2.3


From 46769b859bb56807d47053c3b99810455db12803 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Thu, 11 Jul 2024 15:37:19 +0700
Subject: <iman> update error code image program

---
 src-migrate/modules/cart/components/Item.tsx | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'src-migrate/modules/cart/components/Item.tsx')

diff --git a/src-migrate/modules/cart/components/Item.tsx b/src-migrate/modules/cart/components/Item.tsx
index a757ba37..a382279f 100644
--- a/src-migrate/modules/cart/components/Item.tsx
+++ b/src-migrate/modules/cart/components/Item.tsx
@@ -100,8 +100,7 @@ const CartItem = ({ item, editable = true }: Props) => {
 
 CartItem.Image = function CartItemImage({ item }: { item: CartItemProps }) {
   const image = item?.image || item?.parent?.image
-  const imageProgram = item?.image_program[0] || item?.parent?.image
-  
+  const imageProgram = item?.image_program ? item.image_program[0] : item?.parent?.image;
 
   return (  
     <>
-- 
cgit v1.2.3


From 4ee24671bc23979d7ac18a5390082c0007928540 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Tue, 16 Jul 2024 15:17:17 +0700
Subject: <iman> add select all cart

---
 src-migrate/modules/cart/components/Item.tsx | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

(limited to 'src-migrate/modules/cart/components/Item.tsx')

diff --git a/src-migrate/modules/cart/components/Item.tsx b/src-migrate/modules/cart/components/Item.tsx
index 6ded6373..a337a47c 100644
--- a/src-migrate/modules/cart/components/Item.tsx
+++ b/src-migrate/modules/cart/components/Item.tsx
@@ -17,12 +17,14 @@ import CartItemSelect from './ItemSelect'
 type Props = {
   item: CartItemProps
   editable?: boolean
+  pilihSemuaCart?: boolean 
 }
 
-const CartItem = ({ item, editable = true }: Props) => {
+const CartItem = ({ item, editable = true, pilihSemuaCart }: Props) => {
+
   return (
     <div className={style.wrapper}>
-      {item.cart_type === 'promotion' && (
+      {item.cart_type === 'promotion' && (  
         <div className={style.header}>
           {item.promotion_type?.value && (
             <Tooltip label={PROMO_CATEGORY[item.promotion_type?.value].description} placement="top" bgColor='red.600' p={2} rounded={6}>
@@ -43,7 +45,9 @@ const CartItem = ({ item, editable = true }: Props) => {
       )}
 
       <div className={style.mainProdWrapper}>
-        {editable && <CartItemSelect item={item} />}
+        {editable && (
+          <CartItemSelect item={item} itemSelected={pilihSemuaCart} />
+        )}
         <div className='w-4' />
 
         <CartItem.Image item={item} />
@@ -87,7 +91,6 @@ const CartItem = ({ item, editable = true }: Props) => {
             {!editable && <div className={style.quantity}>{item.quantity}</div>}
           </div>
         </div>
-
       </div>
 
       <div className="flex flex-col">
@@ -153,4 +156,4 @@ CartItem.Skeleton = function CartItemSkeleton(props: SkeletonProps & { count: nu
   ))
 }
 
-export default CartItem
\ No newline at end of file
+export default CartItem
-- 
cgit v1.2.3


From 8c848cf35811ee95e88ce03745ee25315172d758 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Thu, 1 Aug 2024 15:29:17 +0700
Subject: <iman> update unchek all cart

---
 src-migrate/modules/cart/components/Item.tsx | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src-migrate/modules/cart/components/Item.tsx')

diff --git a/src-migrate/modules/cart/components/Item.tsx b/src-migrate/modules/cart/components/Item.tsx
index a337a47c..88a6a975 100644
--- a/src-migrate/modules/cart/components/Item.tsx
+++ b/src-migrate/modules/cart/components/Item.tsx
@@ -20,7 +20,7 @@ type Props = {
   pilihSemuaCart?: boolean 
 }
 
-const CartItem = ({ item, editable = true, pilihSemuaCart }: Props) => {
+const CartItem = ({ item, editable = true,}: Props) => {
 
   return (
     <div className={style.wrapper}>
@@ -46,7 +46,7 @@ const CartItem = ({ item, editable = true, pilihSemuaCart }: Props) => {
 
       <div className={style.mainProdWrapper}>
         {editable && (
-          <CartItemSelect item={item} itemSelected={pilihSemuaCart} />
+          <CartItemSelect item={item} />
         )}
         <div className='w-4' />
 
-- 
cgit v1.2.3

