'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 } from '@/services/user/user'; import { Button } from '@workspace/ui/components/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@workspace/ui/components/card'; import { formatDate } 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 Page() { const t = useTranslations('affiliate'); const { user, common } = useGlobalStore(); const [sum, setSum] = useState(); return (
{t('totalCommission')} {t('commissionInfo')}
({t('commissionRate')}: {common?.invite?.referral_percentage}%)
{t('inviteCode')}
{user?.refer_code} { if (result) { toast.success(t('copySuccess')); } }} >
> request={async (pagination, filter) => { const response = await queryUserAffiliate({ ...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('userEmail')} {item.email}
  • {t('registrationTime')}
); }} empty={} />
); }