mirror of
https://github.com/documenso/documenso.git
synced 2025-11-19 19:21:39 +10:00
feat: add mau card
This commit is contained in:
@ -9,6 +9,7 @@ import {
|
|||||||
Mail,
|
Mail,
|
||||||
MailOpen,
|
MailOpen,
|
||||||
PenTool,
|
PenTool,
|
||||||
|
UserCheck,
|
||||||
UserPlus,
|
UserPlus,
|
||||||
UserSquare2,
|
UserSquare2,
|
||||||
Users,
|
Users,
|
||||||
@ -20,6 +21,7 @@ import { getRecipientsStats } from '@documenso/lib/server-only/admin/get-recipie
|
|||||||
import {
|
import {
|
||||||
getUserWithSignedDocumentMonthlyGrowth,
|
getUserWithSignedDocumentMonthlyGrowth,
|
||||||
getUsersCount,
|
getUsersCount,
|
||||||
|
getUsersWithLastSignedInCount,
|
||||||
getUsersWithSubscriptionsCount,
|
getUsersWithSubscriptionsCount,
|
||||||
} from '@documenso/lib/server-only/admin/get-users-stats';
|
} from '@documenso/lib/server-only/admin/get-users-stats';
|
||||||
import { getSignerConversionMonthly } from '@documenso/lib/server-only/user/get-signer-conversion';
|
import { getSignerConversionMonthly } from '@documenso/lib/server-only/user/get-signer-conversion';
|
||||||
@ -43,6 +45,7 @@ export default async function AdminStatsPage() {
|
|||||||
// userWithAtLeastOneDocumentPerMonth,
|
// userWithAtLeastOneDocumentPerMonth,
|
||||||
// userWithAtLeastOneDocumentSignedPerMonth,
|
// userWithAtLeastOneDocumentSignedPerMonth,
|
||||||
MONTHLY_USERS_SIGNED,
|
MONTHLY_USERS_SIGNED,
|
||||||
|
usersWithLastSignedInCount,
|
||||||
] = await Promise.all([
|
] = await Promise.all([
|
||||||
getUsersCount(),
|
getUsersCount(),
|
||||||
getUsersWithSubscriptionsCount(),
|
getUsersWithSubscriptionsCount(),
|
||||||
@ -52,6 +55,7 @@ export default async function AdminStatsPage() {
|
|||||||
// getUserWithAtLeastOneDocumentPerMonth(),
|
// getUserWithAtLeastOneDocumentPerMonth(),
|
||||||
// getUserWithAtLeastOneDocumentSignedPerMonth(),
|
// getUserWithAtLeastOneDocumentSignedPerMonth(),
|
||||||
getUserWithSignedDocumentMonthlyGrowth(),
|
getUserWithSignedDocumentMonthlyGrowth(),
|
||||||
|
getUsersWithLastSignedInCount(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -68,7 +72,11 @@ export default async function AdminStatsPage() {
|
|||||||
title={_(msg`Active Subscriptions`)}
|
title={_(msg`Active Subscriptions`)}
|
||||||
value={usersWithSubscriptionsCount}
|
value={usersWithSubscriptionsCount}
|
||||||
/>
|
/>
|
||||||
|
<CardMetric
|
||||||
|
icon={UserCheck}
|
||||||
|
title={_(msg`MAU (signed in)`)}
|
||||||
|
value={usersWithLastSignedInCount}
|
||||||
|
/>
|
||||||
<CardMetric
|
<CardMetric
|
||||||
icon={FileCog}
|
icon={FileCog}
|
||||||
title={_(msg`App Version`)}
|
title={_(msg`App Version`)}
|
||||||
|
|||||||
@ -50,6 +50,16 @@ export const getUserWithAtLeastOneDocumentSignedPerMonth = async () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getUsersWithLastSignedInCount = async () => {
|
||||||
|
return await prisma.user.count({
|
||||||
|
where: {
|
||||||
|
lastSignedIn: {
|
||||||
|
gte: DateTime.now().minus({ months: 1 }).toJSDate(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export type GetUserWithDocumentMonthlyGrowth = Array<{
|
export type GetUserWithDocumentMonthlyGrowth = Array<{
|
||||||
month: string;
|
month: string;
|
||||||
count: number;
|
count: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user