fix view products in checkout

This commit is contained in:
hamid zarghami
2026-02-14 10:06:34 +03:30
parent 4aa28eea59
commit 2f90d61788
@@ -15,21 +15,24 @@ const CartItemsList = () => {
const { items } = useCart(); const { items } = useCart();
const { t } = useTranslation('parallels', { keyPrefix: 'Cart' }); const { t } = useTranslation('parallels', { keyPrefix: 'Cart' });
const cartProducts = React.useMemo(() => { const cartLines = React.useMemo(() => {
if (!products.length) return []; if (!products.length) return [];
return Object.entries(items) return Object.entries(items)
.filter(([, detail]) => detail?.quantity && detail.quantity > 0) .filter(([, detail]) => detail?.quantity && detail.quantity > 0)
.map(([id]) => .map(([variantId]) => {
products.find((productItem) => String(productItem.id) === String(id)) const product = products.find((p) =>
) p.variants?.some((v) => String(v.id) === String(variantId))
.filter((product): product is Product => Boolean(product)); );
return product ? { product, variantId } : null;
})
.filter((line): line is { product: Product; variantId: string } => line != null);
}, [products, items]); }, [products, items]);
if (isFetching && !products.length) { if (isFetching && !products.length) {
return <CartItemsSkeleton />; return <CartItemsSkeleton />;
} }
if (cartProducts.length === 0) { if (cartLines.length === 0) {
return ( return (
<div className='flex flex-col items-center justify-center gap-2 py-12 text-sm2 text-muted-foreground'> <div className='flex flex-col items-center justify-center gap-2 py-12 text-sm2 text-muted-foreground'>
<p>{t('EmptyStateTitle', { defaultValue: 'سبد خرید شما خالی است' })}</p> <p>{t('EmptyStateTitle', { defaultValue: 'سبد خرید شما خالی است' })}</p>
@@ -44,9 +47,9 @@ const CartItemsList = () => {
return ( return (
<div className='flex-1 space-y-4'> <div className='flex-1 space-y-4'>
{cartProducts.map((product) => ( {cartLines.map(({ product, variantId }) => (
<MenuItemRenderer key={product.id}> <MenuItemRenderer key={variantId}>
<MenuItem product={product} /> <MenuItem product={product} variantId={variantId} />
</MenuItemRenderer> </MenuItemRenderer>
))} ))}
</div> </div>