'use client'; import { getAvailablePaymentMethods } from '@/services/user/portal'; import { useQuery } from '@tanstack/react-query'; import { Label } from '@workspace/airo-ui/components/label'; import { RadioGroup, RadioGroupItem } from '@workspace/airo-ui/components/radio-group'; import { cn } from '@workspace/airo-ui/lib/utils'; import { useTranslations } from 'next-intl'; import Image from 'next/image'; import React, { memo, useState } from 'react'; interface PaymentMethodsProps { value: number; onChange: (value: number) => void; balance?: boolean; titleClassName: string; } const PaymentMethods: React.FC = ({ value, onChange, balance = true, titleClassName, }) => { const t = useTranslations('subscribe'); const [methods, setMethods] = useState({}); const { data } = useQuery({ queryKey: ['getAvailablePaymentMethods', { balance }], queryFn: async () => { const { data } = await getAvailablePaymentMethods(); const list = data.data?.list || []; const methods = balance ? list : list.filter((item) => item.id !== -1); const defaultMethod = methods.find((item) => item.id); if (defaultMethod?.id) { onChange(defaultMethod?.id); setMethods(defaultMethod); } return methods; }, }); return ( <>
{t('paymentMethod')} {methods.name}
{ setMethods(item); onChange(Number(item.id)); }} > {data?.map((item) => (
))}
); }; export default memo(PaymentMethods);