diff --git a/apps/web/src/app/(dashboard)/admin/stats/page.tsx b/apps/web/src/app/(dashboard)/admin/stats/page.tsx index 04fa9c0ca..dd246d02e 100644 --- a/apps/web/src/app/(dashboard)/admin/stats/page.tsx +++ b/apps/web/src/app/(dashboard)/admin/stats/page.tsx @@ -24,7 +24,6 @@ import { import { CardMetric } from '~/components/(dashboard)/metric-card/metric-card'; import { UserWithDocumentChart } from './user-with-document'; -import { UserWithDocumentCummulativeChart } from './user-with-document-cummulative'; export default async function AdminStatsPage() { const [ @@ -67,12 +66,12 @@ export default async function AdminStatsPage() {
@@ -105,11 +104,29 @@ export default async function AdminStatsPage() {
-

User Charts

- - - - +

Charts

+
+ + + + +
); diff --git a/apps/web/src/app/(dashboard)/admin/stats/user-with-document-cummulative.tsx b/apps/web/src/app/(dashboard)/admin/stats/user-with-document-cummulative.tsx deleted file mode 100644 index 96d2fa775..000000000 --- a/apps/web/src/app/(dashboard)/admin/stats/user-with-document-cummulative.tsx +++ /dev/null @@ -1,69 +0,0 @@ -'use client'; - -import { DateTime } from 'luxon'; -import { Bar, BarChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts'; - -import type { GetUserWithDocumentMonthlyGrowth } from '@documenso/lib/server-only/admin/get-users-stats'; - -export type UserWithDocumentCummulativeChartProps = { - className?: string; - data: GetUserWithDocumentMonthlyGrowth; -}; - -export const UserWithDocumentCummulativeChart = ({ - className, - data, -}: UserWithDocumentCummulativeChartProps) => { - const formattedData = [...data] - .reverse() - .map(({ month, cume_count: count, cume_signed_count: signed_count }) => { - return { - month: DateTime.fromFormat(month, 'yyyy-MM').toFormat('LLL'), - count: Number(count), - signed_count: Number(signed_count), - }; - }); - - return ( -
-
-
-

Total Activity (Cummulative)

-
- - - - - - - [ - Number(value).toLocaleString('en-US'), - name === 'count' ? 'User with document' : 'Users with signed document', - ]} - cursor={{ fill: 'hsl(var(--primary) / 10%)' }} - /> - - - - - -
-
- ); -}; diff --git a/apps/web/src/app/(dashboard)/admin/stats/user-with-document.tsx b/apps/web/src/app/(dashboard)/admin/stats/user-with-document.tsx index 1afc55908..8ffc9db8c 100644 --- a/apps/web/src/app/(dashboard)/admin/stats/user-with-document.tsx +++ b/apps/web/src/app/(dashboard)/admin/stats/user-with-document.tsx @@ -7,27 +7,49 @@ import type { GetUserWithDocumentMonthlyGrowth } from '@documenso/lib/server-onl export type UserWithDocumentChartProps = { className?: string; + title: string; data: GetUserWithDocumentMonthlyGrowth; + cummulative?: boolean; + completed?: boolean; }; -export const UserWithDocumentChart = ({ className, data }: UserWithDocumentChartProps) => { - const formattedData = [...data].reverse().map(({ month, count, signed_count }) => { - return { - month: DateTime.fromFormat(month, 'yyyy-MM').toFormat('LLL'), - count: Number(count), - signed_count: Number(signed_count), - }; - }); +export const UserWithDocumentChart = ({ + className, + data, + title, + cummulative = false, + completed = false, +}: UserWithDocumentChartProps) => { + const formattedData = (data: GetUserWithDocumentMonthlyGrowth, completed: boolean) => { + return [...data] + .reverse() + .map(({ month, count, cume_count, signed_count, cume_signed_count }) => { + const formattedMonth = DateTime.fromFormat(month, 'yyyy-MM').toFormat('LLL'); + if (completed) { + return { + month: formattedMonth, + count: Number(signed_count), + cummulative: Number(cume_signed_count), + }; + } else { + return { + month: formattedMonth, + count: Number(count), + cummulative: Number(cume_count), + }; + } + }); + }; return (
-
-

Total Activity

+
+

{title}

- + @@ -35,29 +57,16 @@ export const UserWithDocumentChart = ({ className, data }: UserWithDocumentChart labelStyle={{ color: 'hsl(var(--primary-foreground))', }} - formatter={(value, name) => [ - Number(value).toLocaleString('en-US'), - { - count: 'User with document', - signed_count: 'Users with signed document', - }[name], - ]} + formatter={(value) => [Number(value).toLocaleString('en-US'), 'Documents']} cursor={{ fill: 'hsl(var(--primary) / 10%)' }} /> - diff --git a/packages/lib/server-only/admin/get-users-stats.ts b/packages/lib/server-only/admin/get-users-stats.ts index cf4d0b540..f79b4b66d 100644 --- a/packages/lib/server-only/admin/get-users-stats.ts +++ b/packages/lib/server-only/admin/get-users-stats.ts @@ -41,7 +41,7 @@ export const getUserWithAtLeastOneDocumentSignedPerMonth = async () => { status: { equals: DocumentStatus.COMPLETED, }, - createdAt: { + completedAt: { gte: new Date(new Date().setMonth(new Date().getMonth() - 1)), }, },