'use client'; import { DateTime } from 'luxon'; import type { TooltipProps } from 'recharts'; import { Bar, BarChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts'; import type { NameType, ValueType } from 'recharts/types/component/DefaultTooltipContent'; import type { GetMonthlyActiveUsersResult } from '@documenso/lib/server-only/admin/get-users-stats'; export type MonthlyActiveUsersChartProps = { className?: string; title: string; cummulative?: boolean; data: GetMonthlyActiveUsersResult; }; const CustomTooltip = ({ active, payload, label }: TooltipProps) => { if (active && payload && payload.length) { return (

{label}

{payload[0].name === 'cume_count' ? 'Cumulative MAU' : 'Monthly Active Users'}:{' '} {Number(payload[0].value).toLocaleString('en-US')}

); } return null; }; export const MonthlyActiveUsersChart = ({ className, data, title, cummulative = false, }: MonthlyActiveUsersChartProps) => { const formattedData = [...data].reverse().map(({ month, count, cume_count }) => { return { month: DateTime.fromFormat(month, 'yyyy-MM').toFormat('MMM yyyy'), count: Number(count), cume_count: Number(cume_count), }; }); return (

{title}

} cursor={{ fill: 'hsl(var(--primary) / 10%)' }} />
); };