'use client'; import { queryRevenueStatistics } 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 { unitConversion } from '@workspace/ui/utils'; import { useLocale, useTranslations } from 'next-intl'; import { Area, AreaChart, Bar, BarChart, CartesianGrid, Label, Pie, PieChart, XAxis, } from 'recharts'; import { Display } from '../display'; import { Empty } from '../empty'; export function RevenueStatisticsCard() { const t = useTranslations('index'); const IncomeStatisticsConfig = { new_purchase: { label: t('newPurchase'), color: 'hsl(var(--chart-1))', }, repurchase: { label: t('repurchase'), color: 'hsl(var(--chart-2))', }, }; const locale = useLocale(); const { data: RevenueStatistics } = useQuery({ queryKey: ['queryRevenueStatistics'], queryFn: async () => { const { data } = await queryRevenueStatistics(); return data.data; }, }); return ( {t('revenueTitle')} {t('today')} {t('month')} {t('total')} {RevenueStatistics?.today.new_order_amount || RevenueStatistics?.today.renewal_order_amount ? ( } /> } /> ) : ( )}
{t('totalIncome')}
{IncomeStatisticsConfig.new_purchase.label}
{IncomeStatisticsConfig.repurchase.label}
{RevenueStatistics?.monthly.list && RevenueStatistics?.monthly.list.length > 0 ? ( ({ date: item.date, new_purchase: unitConversion('centsToDollars', item.new_order_amount), repurchase: unitConversion('centsToDollars', item.renewal_order_amount), })) || [] } > { return new Date(value).toLocaleDateString(locale, { month: 'short', day: 'numeric', }); }} /> } /> } /> ) : ( )}
{t('totalIncome')}
{IncomeStatisticsConfig.new_purchase.label}
{IncomeStatisticsConfig.repurchase.label}
{RevenueStatistics?.all.list && RevenueStatistics?.all.list.length > 0 ? ( ({ date: item.date, new_purchase: unitConversion('centsToDollars', item.new_order_amount), repurchase: unitConversion('centsToDollars', item.renewal_order_amount), })) || [] } margin={{ left: 12, right: 12, }} > { return new Date(value).toLocaleDateString(locale, { month: 'short', }); }} /> } /> } /> ) : ( )}
{t('totalIncome')}
); }