This commit is contained in:
@@ -19,7 +19,7 @@ import CartSummary from "./components/CartSummary";
|
|||||||
import { useCart } from "./hook/useCart";
|
import { useCart } from "./hook/useCart";
|
||||||
import { useGetCartItems } from "./hooks/useCartData";
|
import { useGetCartItems } from "./hooks/useCartData";
|
||||||
import {
|
import {
|
||||||
cartItemToFood,
|
cartItemsToFoods,
|
||||||
guestCartItemsToFoods,
|
guestCartItemsToFoods,
|
||||||
hasCartEntries,
|
hasCartEntries,
|
||||||
} from "./lib/cartUtils";
|
} from "./lib/cartUtils";
|
||||||
@@ -38,12 +38,12 @@ const CartPage = () => {
|
|||||||
const isPremium = aboutData?.data?.plan === "premium";
|
const isPremium = aboutData?.data?.plan === "premium";
|
||||||
|
|
||||||
const cartFoods = React.useMemo(() => {
|
const cartFoods = React.useMemo(() => {
|
||||||
|
const foods = foodsResponse?.data ?? [];
|
||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
const apiItems =
|
const apiItems = cartData?.data?.items ?? [];
|
||||||
cartData?.data?.items?.filter((item) => item.quantity > 0) ?? [];
|
return cartItemsToFoods(apiItems, foods);
|
||||||
return apiItems.map(cartItemToFood);
|
|
||||||
}
|
}
|
||||||
return guestCartItemsToFoods(items, foodsResponse?.data ?? []);
|
return guestCartItemsToFoods(items, foods);
|
||||||
}, [isSuccess, cartData?.data?.items, items, foodsResponse?.data]);
|
}, [isSuccess, cartData?.data?.items, items, foodsResponse?.data]);
|
||||||
|
|
||||||
const hasItems = React.useMemo(() => {
|
const hasItems = React.useMemo(() => {
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
import type { CartItem } from '../types/Types';
|
import type { CartItem } from '../types/Types';
|
||||||
import type { Food } from '@/app/[name]/(Main)/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 {
|
return {
|
||||||
id: item.foodId,
|
id: item.foodId,
|
||||||
category: '',
|
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(
|
export function guestCartItemsToFoods(
|
||||||
items: Record<string | number, { quantity: number }>,
|
items: Record<string | number, { quantity: number }>,
|
||||||
foods: Food[]
|
foods: Food[]
|
||||||
|
|||||||
Reference in New Issue
Block a user