feat(MED-131): reset loading on error, show spinner

This commit is contained in:
2025-08-04 11:53:33 +03:00
parent 606fd55a42
commit f4dcc44428

View File

@@ -1,6 +1,6 @@
"use client"; "use client";
import { HeartPulse, ShoppingCart } from 'lucide-react'; import { HeartPulse, Loader2, ShoppingCart } from 'lucide-react';
import { Button } from '@kit/ui/button'; import { Button } from '@kit/ui/button';
import { import {
@@ -24,15 +24,20 @@ export default function OrderAnalysesCards({
const [isAddingToCart, setIsAddingToCart] = useState(false); const [isAddingToCart, setIsAddingToCart] = useState(false);
const handleSelect = async (selectedVariant: StoreProductVariant) => { const handleSelect = async (selectedVariant: StoreProductVariant) => {
if (!selectedVariant?.id) return null if (!selectedVariant?.id || isAddingToCart) return null
setIsAddingToCart(true); setIsAddingToCart(true);
try {
await handleAddToCart({ await handleAddToCart({
selectedVariant, selectedVariant,
countryCode, countryCode,
}); });
setIsAddingToCart(false); setIsAddingToCart(false);
router.push('/home/cart'); router.push('/home/cart');
} catch (e) {
setIsAddingToCart(false);
console.error(e);
}
} }
return ( return (
@@ -53,9 +58,8 @@ export default function OrderAnalysesCards({
variant="outline" variant="outline"
className="px-2 text-black" className="px-2 text-black"
onClick={() => handleSelect(variants![0]!)} onClick={() => handleSelect(variants![0]!)}
disabled={isAddingToCart}
> >
<ShoppingCart className="size-4 stroke-2" /> {isAddingToCart ? <Loader2 className="size-4 stroke-2 animate-spin" /> : <ShoppingCart className="size-4 stroke-2" />}
</Button> </Button>
</div> </div>
</CardHeader> </CardHeader>