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

