"use client"; import { Wallet, ChevronRight } from "lucide-react"; import { Card, CardContent, CardHeader, CardTitle, Button, Skeleton } from "../../../../shadcnui"; import { PaymentMethodInterface } from "../../stripe-customer"; type PaymentMethodSummaryCardProps = { paymentMethods: PaymentMethodInterface[]; defaultPaymentMethodId?: string; loading?: boolean; error?: string; onManageClick: () => void; }; function getCardBrandIcon(brand: string): string { const brandMap: Record = { visa: "Visa", mastercard: "Mastercard", amex: "Amex", discover: "Discover", diners: "Diners", jcb: "JCB", unionpay: "UnionPay", }; return brandMap[brand.toLowerCase()] || brand; } export function PaymentMethodSummaryCard({ paymentMethods, defaultPaymentMethodId, loading, error, onManageClick, }: PaymentMethodSummaryCardProps) { if (loading) { return ( Payment Method ); } if (error) { return ( Payment Method

{error}

); } // Find default payment method or use first one const defaultMethod = paymentMethods.find((pm) => pm.id === defaultPaymentMethodId) || paymentMethods[0]; return ( Payment Method {paymentMethods.length === 0 ? (

No payment method

Add a card to enable subscriptions

) : defaultMethod?.card ? (

{getCardBrandIcon(defaultMethod.card.brand)} ****{defaultMethod.card.last4}

Expires {String(defaultMethod.card.expMonth).padStart(2, "0")}/{defaultMethod.card.expYear}

{paymentMethods.length > 1 && (

+{paymentMethods.length - 1} more card(s)

)}
) : (

{defaultMethod?.type || "Payment Method"}

{paymentMethods.length > 1 && (

+{paymentMethods.length - 1} more method(s)

)}
)}
); }