diff --git a/src/app/[name]/(Main)/cart/CartPage.tsx b/src/app/[name]/(Main)/cart/CartPage.tsx index 8062536..addbe00 100644 --- a/src/app/[name]/(Main)/cart/CartPage.tsx +++ b/src/app/[name]/(Main)/cart/CartPage.tsx @@ -1,7 +1,5 @@ "use client"; -import { useGetFoods } from "@/app/[name]/(Main)/hooks/useMenuData"; -import { useGetProfile } from "@/app/[name]/(Profile)/profile/hooks/userProfileData"; import Button from "@/components/button/PrimaryButton"; import NotificationBellIcon from "@/components/icons/NotificationBellIcon"; import MenuItem from "@/components/listview/MenuItem"; @@ -17,49 +15,19 @@ import { useGetAbout } from "../about/hooks/useAboutData"; import CartSkeleton from "./components/CartSkeleton"; import CartSummary from "./components/CartSummary"; import { useCart } from "./hook/useCart"; -import { useGetCartItems } from "./hooks/useCartData"; -import { - cartItemsToFoods, - guestCartItemsToFoods, - hasCartEntries, -} from "./lib/cartUtils"; +import { useCartPageState } from "./hooks/useCartPageState"; const CartPage = () => { const { t } = useTranslation("parallels", { keyPrefix: "Cart" }); const router = useRouter(); - const { isSuccess } = useGetProfile(); - const { clearCart, items } = useCart(); - const { data: cartData, isPending: cartPending } = useGetCartItems(isSuccess); - const { data: foodsResponse } = useGetFoods(); + const { clearCart } = useCart(); const { data: aboutData } = useGetAbout(); + const { isLoading, isCartEmpty, hasItems, cartFoods } = useCartPageState(); const [showClearConfirm, setShowClearConfirm] = React.useState(false); const [showPagerModal, setShowPagerModal] = React.useState(false); const isPremium = aboutData?.data?.plan === "premium"; - const cartFoods = React.useMemo(() => { - const foods = foodsResponse?.data ?? []; - if (isSuccess) { - const apiItems = cartData?.data?.items ?? []; - return cartItemsToFoods(apiItems, foods); - } - return guestCartItemsToFoods(items, foods); - }, [isSuccess, cartData?.data?.items, items, foodsResponse?.data]); - - const hasItems = React.useMemo(() => { - if (isSuccess) { - return (cartData?.data?.totalItems ?? 0) > 0 || hasCartEntries(items); - } - return hasCartEntries(items); - }, [isSuccess, cartData?.data?.totalItems, items]); - - const guestAwaitingMenu = - !isSuccess && hasItems && cartFoods.length === 0 && !foodsResponse?.data; - - const showInitialCartLoad = isSuccess && cartPending && !cartData && hasItems; - - const isCartEmpty = !hasItems; - const handleClearCart = (e: React.MouseEvent) => { e?.preventDefault(); e?.stopPropagation(); @@ -76,7 +44,7 @@ const CartPage = () => { return (