summaryrefslogtreecommitdiff
path: root/src-migrate/modules/cart/components
diff options
context:
space:
mode:
Diffstat (limited to 'src-migrate/modules/cart/components')
-rw-r--r--src-migrate/modules/cart/components/Item.tsx59
1 files changed, 55 insertions, 4 deletions
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