'use client'; import { getStripeWeChatPayPaymentConfig, updateStripeWeChatPayPaymentConfig, } from '@/services/admin/payment'; import { EnhancedInput } from '@repo/ui/enhanced-input'; import { unitConversion } from '@repo/ui/utils'; import { Label } from '@shadcn/ui/label'; import { toast } from '@shadcn/ui/lib/sonner'; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from '@shadcn/ui/select'; import { Switch } from '@shadcn/ui/switch'; import { Table, TableBody, TableCell, TableRow } from '@shadcn/ui/table'; import { useQuery } from '@tanstack/react-query'; import { useTranslations } from 'next-intl'; export default function StripeWeChatPay() { const t = useTranslations('payment'); const { data, refetch } = useQuery({ queryKey: ['getStripeWeChatPayPaymentConfig'], queryFn: async () => { const { data } = await getStripeWeChatPayPaymentConfig(); return data.data; }, }); async function updateConfig(key: string, value: unknown) { if (data?.[key] === value) return; try { await updateStripeWeChatPayPaymentConfig({ ...data, mark: 'stripe_wechat_pay', [key]: value, } as any); toast.success(t('saveSuccess')); refetch(); } catch (error) { /* empty */ } } return (

{t('enableDescription')}

{ updateConfig('enable', checked); }} />

{t('showNameDescription')}

{ updateConfig('name', value); }} />

{t('iconUrlDescription')}

{ updateConfig('icon', value); }} />

{t('notifyUrlDescription')}

{ updateConfig('domain', value); }} />

{t('feeModeDescription')}

{t('feePercentDescription')}

{ updateConfig('fee_percent', value); }} suffix='%' />

{t('fixedFeeDescription')}

unitConversion('centsToDollars', value)} formatOutput={(value) => unitConversion('dollarsToCents', value)} onValueBlur={(value) => updateConfig('fee_amount', value)} />

{ updateConfig('config', { ...data?.config, public_key: value, }); }} />

{ updateConfig('config', { ...data?.config, secret_key: value, }); }} />

{ updateConfig('config', { ...data?.config, webhook_secret: value, }); }} />

); }