import { Check, Trash } from "lucide-react"; import { memo, useMemo } from "react"; import { QuantityControl } from "./QuantityControl"; import { formatPrice } from "../../utils/helpers"; import { CartItem as CartItemType } from "src/api/types"; import { isVideo } from "../MondrianProductList"; import { Button } from "../ui/button"; interface CartItemProps { item: CartItemType; onQuantityChange: (itemId: string, quantity: number) => void; onRemoveItem: (itemId: string) => void; isLoading: boolean; hasBorder: boolean; } export const CartItem = memo(function CartItem({ item, onQuantityChange, onRemoveItem, isLoading, hasBorder, }: CartItemProps) { // Memoize discount calculation const discountPercent = useMemo(() => { if (!item.productVariant?.discountPrice || !item.productVariant?.price) { return null; } return Math.round( ((Number(item.productVariant.price) - Number(item.productVariant.discountPrice)) / Number(item.productVariant.price)) * 100 ); }, [item.productVariant?.discountPrice, item.productVariant?.price]); // Memoize video check const isVideoMedia = useMemo( () => isVideo(item.productVariant?.productImage || ""), [item.productVariant?.productImage] ); return (
{item.productVariant?.productTitle || ""}
کد کالا: {item.productVariant?.id || ""}
قیمت واحد :
{formatPrice(item.productVariant?.price || "")} تومان
مقدار تخفیف :
{formatPrice( ( Number(item.productVariant?.price) - Number(item.productVariant?.discountPrice) ).toString() )}{" "} تومان
محصول در حال حاضر موجود نیست
رنگ :
سایز :
{size}