diff --git a/app/[locale]/cart/page.tsx b/app/[locale]/cart/page.tsx index e8d67f3..42965f2 100644 --- a/app/[locale]/cart/page.tsx +++ b/app/[locale]/cart/page.tsx @@ -3,7 +3,9 @@ import { useState, useEffect, useMemo } from "react"; import { Card } from "@/components/ui/card"; import { Separator } from "@/components/ui/separator"; import CartItemCard from "../../../features/cart/components/CartItemCard"; +import CartItemSkeleton from "../../../features/cart/components/CartItemSkeleton"; import OrderSummary from "../../../features/cart/components/OrderSummary"; +import OrderSummarySkeleton from "../../../features/cart/components/OrderSummarySkeleton"; import { useCart, useCreateOrder, @@ -14,6 +16,7 @@ import { useTranslations } from "next-intl"; import { useRouter } from "next/navigation"; import type { DeliveryType, PaymentType } from "@/lib/types/api"; import EmptyCart from "@/features/cart/components/EmptyCart"; +import ErrorPage from "@/components/ErrorPage"; export default function CartPage() { const [isClient, setIsClient] = useState(false); @@ -29,12 +32,14 @@ export default function CartPage() { const router = useRouter(); const t = useTranslations(); - const { data: cartResponse, isLoading, isError } = useCart(); - const { data: provinces = [] } = useRegions(); - const { data: paymentTypes = [] } = usePaymentTypes(); + const { data: cartResponse, isLoading: cartLoading, isError } = useCart(); + const { data: provinces = [], isLoading: provincesLoading } = useRegions(); + const { data: paymentTypes = [], isLoading: paymentTypesLoading } = + usePaymentTypes(); const { mutate: createOrder, isPending: isCreatingOrder } = useCreateOrder(); const cartItems = cartResponse?.data || []; + const isLoading = cartLoading || provincesLoading || paymentTypesLoading; useEffect(() => { setIsClient(true); @@ -120,12 +125,38 @@ export default function CartPage() { if (!isClient) return null; - if (isError || cartItems.length === 0) { + if (isLoading) { + return ( +
- Bringing you the goods… + {t('loading')}
-+ {/*
This is taking long. Something’s wrong. -
+ */}- {total.toFixed(2)} TMT -
-+ {total.toFixed(2)} TMT +
+