feat(MED-131): reset loading on error, show spinner
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user