This commit is contained in:
@@ -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(() => {
|
||||
|
||||
@@ -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[]
|
||||
|
||||
Reference in New Issue
Block a user