From 89154e62303a670a1095ef0228f33764bf687f97 Mon Sep 17 00:00:00 2001 From: Ephraim Atta-Duncan Date: Thu, 19 Sep 2024 14:27:05 +0000 Subject: [PATCH] chore: minor fixes --- .../leaderboard/data-table-leaderboard.tsx | 21 ++- packages/lib/translations/de/web.po | 2 +- packages/lib/translations/en/web.po | 2 +- packages/prisma/seed-signing-volume.ts | 124 ------------------ 4 files changed, 12 insertions(+), 137 deletions(-) delete mode 100644 packages/prisma/seed-signing-volume.ts diff --git a/apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx b/apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx index 978f6a7b9..a3566a11b 100644 --- a/apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx +++ b/apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx @@ -37,7 +37,7 @@ export const LeaderboardTable = ({ sortBy, sortOrder, }: LeaderboardTableProps) => { - const { _ } = useLingui(); + const { _, i18n } = useLingui(); const [isPending, startTransition] = useTransition(); const updateSearchParams = useUpdateSearchParams(); @@ -50,13 +50,13 @@ export const LeaderboardTable = ({ header: 'ID', accessorKey: 'id', cell: ({ row }) =>
{row.original.id}
, - size: 10, + size: 60, }, { header: () => (
handleColumnSort('name', sortOrder)} + onClick={() => handleColumnSort('name')} > {_(msg`Name`)} @@ -70,7 +70,7 @@ export const LeaderboardTable = ({ header: () => (
handleColumnSort('signingVolume', sortOrder)} + onClick={() => handleColumnSort('signingVolume')} > {_(msg`Signing Volume`)} @@ -84,7 +84,7 @@ export const LeaderboardTable = ({ return (
handleColumnSort('createdAt', sortOrder)} + onClick={() => handleColumnSort('createdAt')} > {_(msg`Created`)} @@ -92,7 +92,7 @@ export const LeaderboardTable = ({ ); }, accessorKey: 'createdAt', - cell: ({ row }) =>
{row.original.createdAt.toLocaleDateString()}
, + cell: ({ row }) => i18n.date(row.original.createdAt), }, ] satisfies DataTableColumnDef[]; }, [sortOrder]); @@ -103,6 +103,8 @@ export const LeaderboardTable = ({ search: debouncedSearchString, page: 1, perPage, + sortBy, + sortOrder, }); }); // eslint-disable-next-line react-hooks/exhaustive-deps @@ -121,13 +123,10 @@ export const LeaderboardTable = ({ setSearchString(e.target.value); }; - const handleColumnSort = ( - column: 'name' | 'createdAt' | 'signingVolume', - sortOrder: 'asc' | 'desc', - ) => { + const handleColumnSort = (column: 'name' | 'createdAt' | 'signingVolume') => { startTransition(() => { updateSearchParams({ - sortBy: sortBy === column, + sortBy: column, sortOrder: sortOrder === 'asc' ? 'desc' : 'asc', }); }); diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index 8da616ec6..f97a5bb3f 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -2594,7 +2594,7 @@ msgstr "" msgid "Search by document title" msgstr "" -#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:141 +#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:140 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144 msgid "Search by name or email" msgstr "" diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index 8e7ea3364..576f2b9f3 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -2612,7 +2612,7 @@ msgstr "Search" msgid "Search by document title" msgstr "Search by document title" -#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:141 +#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:140 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144 msgid "Search by name or email" msgstr "Search by name or email" diff --git a/packages/prisma/seed-signing-volume.ts b/packages/prisma/seed-signing-volume.ts deleted file mode 100644 index 92d8e12a5..000000000 --- a/packages/prisma/seed-signing-volume.ts +++ /dev/null @@ -1,124 +0,0 @@ -import type { Subscription, Team, User } from '@prisma/client'; -import { DocumentDataType, PrismaClient } from '@prisma/client'; -import fs from 'node:fs'; -import path from 'node:path'; - -import { hashSync } from '@documenso/lib/server-only/auth/hash'; - -const prisma = new PrismaClient(); - -const examplePdf = fs - .readFileSync(path.join(__dirname, '../../assets/example.pdf')) - .toString('base64'); - -async function seedLeaderboardData(numUsers: number, numTeams: number) { - const users: User[] = []; - const teams: Team[] = []; - const subscriptions: Subscription[] = []; - - // Create users with subscriptions - for (let i = 0; i < numUsers; i++) { - const user = await prisma.user.create({ - data: { - name: `User ${i + 1}`, - email: `user${i + 1}@documenso.com`, - password: hashSync('password'), - emailVerified: new Date(), - }, - }); - users.push(user); - - const subscription = await prisma.subscription.create({ - data: { - userId: user.id, - status: 'ACTIVE', - planId: `plan_${Date.now().toString()}`, - priceId: `price_${Date.now().toString()}`, - }, - }); - subscriptions.push(subscription); - } - - // Create teams - for (let i = 0; i < numTeams; i++) { - const ownerUser = users[Math.floor(Math.random() * users.length)]; - const team = await prisma.team.create({ - data: { - name: `Team ${i + 1}`, - url: `team-${Date.now().toString()}`, - ownerUserId: ownerUser.id, - }, - }); - teams.push(team); - - // Add random users to the team - const teamMembers = users.filter((u) => u.id !== ownerUser.id).slice(0, 3); - for (const member of teamMembers) { - await prisma.teamMember.create({ - data: { - teamId: team.id, - userId: member.id, - role: 'MEMBER', - }, - }); - } - } - - // Create documents for each user - for (const user of users) { - const numDocuments = Math.floor(Math.random() * 10) + 1; // 1 to 5 documents per user - for (let i = 0; i < numDocuments; i++) { - const documentData = await prisma.documentData.create({ - data: { - type: DocumentDataType.BYTES_64, - data: examplePdf, - initialData: examplePdf, - }, - }); - - await prisma.document.create({ - data: { - title: `Personal Document ${i + 1} for User ${user.id}`, - userId: user.id, - status: 'COMPLETED', - documentDataId: documentData.id, - source: 'DOCUMENT', - }, - }); - } - } - - // Create documents for each team - for (const team of teams) { - const numDocuments = Math.floor(Math.random() * 10) + 1; // 1 to 10 documents per team - for (let i = 0; i < numDocuments; i++) { - const documentData = await prisma.documentData.create({ - data: { - type: DocumentDataType.BYTES_64, - data: 'base64encodeddata', // Replace with actual data if needed - initialData: 'base64encodeddata', // Replace with actual data if needed - }, - }); - - await prisma.document.create({ - data: { - title: `Team Document ${i + 1} for Team ${team.id}`, - userId: team.ownerUserId, // Assign to team owner - teamId: team.id, - status: 'COMPLETED', - documentDataId: documentData.id, - source: 'DOCUMENT', - }, - }); - } - } - - console.log(`Seeded ${users.length} users, ${teams.length} teams, and their documents.`); -} - -// Usage -seedLeaderboardData(50, 10) - .catch((e) => console.error(e)) - .finally(() => { - void prisma.$disconnect(); - });