cart item food
Build and Deploy Docker Images / build_and_deploy (push) Has been cancelled

This commit is contained in:
hamid zarghami
2026-06-06 16:11:17 +03:30
parent 804f6f69ae
commit 75e23237e6
2 changed files with 21 additions and 6 deletions
+5 -5
View File
@@ -19,7 +19,7 @@ import CartSummary from "./components/CartSummary";
import { useCart } from "./hook/useCart";
import { useGetCartItems } from "./hooks/useCartData";
import {
cartItemToFood,
cartItemsToFoods,
guestCartItemsToFoods,
hasCartEntries,
} from "./lib/cartUtils";
@@ -38,12 +38,12 @@ const CartPage = () => {
const isPremium = aboutData?.data?.plan === "premium";
const cartFoods = React.useMemo(() => {
const foods = foodsResponse?.data ?? [];
if (isSuccess) {
const apiItems =
cartData?.data?.items?.filter((item) => item.quantity > 0) ?? [];
return apiItems.map(cartItemToFood);
const apiItems = cartData?.data?.items ?? [];
return cartItemsToFoods(apiItems, foods);
}
return guestCartItemsToFoods(items, foodsResponse?.data ?? []);
return guestCartItemsToFoods(items, foods);
}, [isSuccess, cartData?.data?.items, items, foodsResponse?.data]);
const hasItems = React.useMemo(() => {
+16 -1
View File
@@ -1,7 +1,11 @@
import type { CartItem } from '../types/Types';
import type { Food } from '@/app/[name]/(Main)/types/Types';
export function cartItemToFood(item: CartItem): Food {
export function cartItemToFood(item: CartItem, menuFood?: Food): Food {
if (menuFood) {
return menuFood;
}
return {
id: item.foodId,
category: '',
@@ -19,6 +23,17 @@ export function cartItemToFood(item: CartItem): Food {
};
}
export function cartItemsToFoods(items: CartItem[], foods: Food[]): Food[] {
return items
.filter((item) => item.quantity > 0)
.map((item) => {
const menuFood = foods.find(
(food) => String(food.id) === String(item.foodId)
);
return cartItemToFood(item, menuFood);
});
}
export function guestCartItemsToFoods(
items: Record<string | number, { quantity: number }>,
foods: Food[]