diff --git a/src/app/[name]/(Main)/cart/CartPage.tsx b/src/app/[name]/(Main)/cart/CartPage.tsx index fbf27ca..8062536 100644 --- a/src/app/[name]/(Main)/cart/CartPage.tsx +++ b/src/app/[name]/(Main)/cart/CartPage.tsx @@ -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(() => { diff --git a/src/app/[name]/(Main)/cart/lib/cartUtils.ts b/src/app/[name]/(Main)/cart/lib/cartUtils.ts index 0ed5a98..a4847cd 100644 --- a/src/app/[name]/(Main)/cart/lib/cartUtils.ts +++ b/src/app/[name]/(Main)/cart/lib/cartUtils.ts @@ -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, foods: Food[]