'use client'; import { queryUserStatistics } from '@/services/admin/console'; import { useQuery } from '@tanstack/react-query'; import { Card, CardContent, CardFooter, CardHeader, CardTitle, } from '@workspace/ui/components/card'; import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, } from '@workspace/ui/components/chart'; import { Separator } from '@workspace/ui/components/separator'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@workspace/ui/components/tabs'; import { useLocale, useTranslations } from 'next-intl'; import { Area, AreaChart, Bar, BarChart, CartesianGrid, Label, Pie, PieChart, XAxis, } from 'recharts'; import { Empty } from '../empty'; export function UserStatisticsCard() { const t = useTranslations('index'); const UserStatisticsConfig = { register: { label: t('register'), color: 'hsl(var(--chart-1))', }, new_purchase: { label: t('newPurchase'), color: 'hsl(var(--chart-2))', }, repurchase: { label: t('repurchase'), color: 'hsl(var(--chart-3))', }, }; const locale = useLocale(); const { data: UserStatistics } = useQuery({ queryKey: ['queryUserStatistics'], queryFn: async () => { const { data } = await queryUserStatistics(); return data.data; }, }); return ( {t('userTitle')} {t('today')} {t('month')} {t('total')} {UserStatistics?.today.register || UserStatistics?.today.new_order_users || UserStatistics?.today.renewal_order_users ? ( } /> } /> ) : ( )}
{UserStatisticsConfig.register.label}
{UserStatistics?.today.register}
{UserStatisticsConfig.new_purchase.label}
{UserStatistics?.today.new_order_users}
{UserStatisticsConfig.repurchase.label}
{UserStatistics?.today.renewal_order_users}
{UserStatistics?.monthly.list && UserStatistics?.monthly.list.length > 0 ? ( ({ date: item.date, register: item.register, new_purchase: item.new_order_users, repurchase: item.renewal_order_users, })) || [] } > { return new Date(value).toLocaleDateString(locale, { month: 'short', day: 'numeric', }); }} /> } /> } /> ) : ( )}
{UserStatisticsConfig.register.label}
{UserStatistics?.monthly.register}
{UserStatisticsConfig.new_purchase.label}
{UserStatistics?.monthly.new_order_users}
{UserStatisticsConfig.repurchase.label}
{UserStatistics?.monthly.renewal_order_users}
{UserStatistics?.all.list && UserStatistics?.all.list.length > 0 ? ( ({ date: item.date, register: item.register, new_purchase: item.new_order_users, repurchase: item.renewal_order_users, })) || [] } margin={{ left: 12, right: 12, }} > { return new Date(value).toLocaleDateString(locale, { month: 'short', }); }} /> } /> } /> ) : ( )}
{UserStatisticsConfig.register.label}
{UserStatistics?.all.register}
); }