fix view products in checkout
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user