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";
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}
>
<ShoppingCart className="size-4 stroke-2" />
{isAddingToCart ? <Loader2 className="size-4 stroke-2 animate-spin" /> : <ShoppingCart className="size-4 stroke-2" />}
</Button>
</div>
</CardHeader>