'use client'; import { Display } from '@/components/display'; import { Empty } from '@/components/empty'; import { ProList } from '@/components/pro-list'; import useGlobalStore from '@/config/use-global'; import { queryUserAffiliate, queryUserAffiliateList } from '@/services/user/user'; import { useQuery } from '@tanstack/react-query'; import { Button } from '@workspace/ui/components/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@workspace/ui/components/card'; import { formatDate, isBrowser } from '@workspace/ui/utils'; import { Copy } from 'lucide-react'; import { useTranslations } from 'next-intl'; import { useState } from 'react'; import { CopyToClipboard } from 'react-copy-to-clipboard'; import { toast } from 'sonner'; export default function Affiliate() { const t = useTranslations('affiliate'); const { user, common } = useGlobalStore(); const [sum, setSum] = useState(); const { data } = useQuery({ queryKey: ['queryUserAffiliate'], queryFn: async () => { const response = await queryUserAffiliate(); return response.data.data; }, }); return (
{t('totalCommission')} {t('commissionInfo')}
({t('commissionRate')}:{' '} {user?.referral_percentage || common?.invite?.referral_percentage}%)
{t('inviteCode')}
{user?.refer_code} {isBrowser() && ( { if (result) { toast.success(t('copySuccess')); } }} > )}
> request={async (pagination, filter) => { const response = await queryUserAffiliateList({ ...pagination, ...filter }); setSum(response.data.data?.sum); return { list: response.data.data?.list || [], total: response.data.data?.total || 0, }; }} header={{ title: t('inviteRecords'), }} renderItem={(item) => { return (
  • {t('userIdentifier')} {item.identifier}
  • {t('registrationTime')}
); }} empty={} />
); }