From f4dcc44428d15ed35b534891fdcce4c485772741 Mon Sep 17 00:00:00 2001 From: k4rli Date: Mon, 4 Aug 2025 11:53:33 +0300 Subject: [PATCH] feat(MED-131): reset loading on error, show spinner --- .../_components/order-analyses-cards.tsx | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/app/home/(user)/_components/order-analyses-cards.tsx b/app/home/(user)/_components/order-analyses-cards.tsx index bc4a690..9a9d8d8 100644 --- a/app/home/(user)/_components/order-analyses-cards.tsx +++ b/app/home/(user)/_components/order-analyses-cards.tsx @@ -1,6 +1,6 @@ "use client"; -import { HeartPulse, ShoppingCart } from 'lucide-react'; +import { HeartPulse, Loader2, ShoppingCart } from 'lucide-react'; import { Button } from '@kit/ui/button'; import { @@ -24,15 +24,20 @@ export default function OrderAnalysesCards({ const [isAddingToCart, setIsAddingToCart] = useState(false); const handleSelect = async (selectedVariant: StoreProductVariant) => { - if (!selectedVariant?.id) return null + if (!selectedVariant?.id || isAddingToCart) return null setIsAddingToCart(true); - await handleAddToCart({ - selectedVariant, - countryCode, - }); - setIsAddingToCart(false); - router.push('/home/cart'); + try { + await handleAddToCart({ + selectedVariant, + countryCode, + }); + setIsAddingToCart(false); + router.push('/home/cart'); + } catch (e) { + setIsAddingToCart(false); + console.error(e); + } } return ( @@ -53,9 +58,8 @@ export default function OrderAnalysesCards({ variant="outline" className="px-2 text-black" onClick={() => handleSelect(variants![0]!)} - disabled={isAddingToCart} > - + {isAddingToCart ? : }