"use client"; import { HeartPulse, Loader2, ShoppingCart } from 'lucide-react'; import { Button } from '@kit/ui/button'; import { Card, CardHeader, CardFooter, CardDescription, } from '@kit/ui/card'; import { StoreProduct } from '@medusajs/types'; import { useState } from 'react'; import { handleAddToCart } from '~/lib/services/medusaCart.service'; import { InfoTooltip } from '@kit/shared/components/ui/info-tooltip'; import { Trans } from '@kit/ui/trans'; import { toast } from '@kit/ui/sonner'; export type OrderAnalysisCard = Pick< StoreProduct, 'title' | 'description' | 'subtitle' > & { isAvailable: boolean; variant: { id: string }; }; export default function OrderAnalysesCards({ analyses, countryCode, }: { analyses: OrderAnalysisCard[]; countryCode: string; }) { const [isAddingToCart, setIsAddingToCart] = useState(false); const handleSelect = async (variantId: string) => { if (isAddingToCart) { return null; } setIsAddingToCart(true); try { await handleAddToCart({ selectedVariant: { id: variantId }, countryCode, }); toast.success(); setIsAddingToCart(false); } catch (e) { toast.error(); setIsAddingToCart(false); console.error(e); } } return (
{analyses.map(({ title, variant, description, subtitle, isAvailable, }) => { return (
{isAvailable && (
)}
{title} {description && ( <> {' '} )}
{isAvailable && subtitle && ( {subtitle} )} {!isAvailable && ( )}
); })}
); }