diff --git a/src/app/[name]/(Dialogs)/cart/components/CartItemsList.tsx b/src/app/[name]/(Dialogs)/cart/components/CartItemsList.tsx index cc52a3d..588a186 100644 --- a/src/app/[name]/(Dialogs)/cart/components/CartItemsList.tsx +++ b/src/app/[name]/(Dialogs)/cart/components/CartItemsList.tsx @@ -15,21 +15,24 @@ const CartItemsList = () => { const { items } = useCart(); const { t } = useTranslation('parallels', { keyPrefix: 'Cart' }); - const cartProducts = React.useMemo(() => { + const cartLines = React.useMemo(() => { if (!products.length) return []; return Object.entries(items) .filter(([, detail]) => detail?.quantity && detail.quantity > 0) - .map(([id]) => - products.find((productItem) => String(productItem.id) === String(id)) - ) - .filter((product): product is Product => Boolean(product)); + .map(([variantId]) => { + const product = products.find((p) => + p.variants?.some((v) => String(v.id) === String(variantId)) + ); + return product ? { product, variantId } : null; + }) + .filter((line): line is { product: Product; variantId: string } => line != null); }, [products, items]); if (isFetching && !products.length) { return ; } - if (cartProducts.length === 0) { + if (cartLines.length === 0) { return (

{t('EmptyStateTitle', { defaultValue: 'سبد خرید شما خالی است' })}

@@ -44,9 +47,9 @@ const CartItemsList = () => { return (
- {cartProducts.map((product) => ( - - + {cartLines.map(({ product, variantId }) => ( + + ))}