chore: tidy up

This commit is contained in:
pit
2023-10-09 13:30:28 +03:00
committed by Mythie
parent 15a1c1da3f
commit 92b5111d7e
7 changed files with 15 additions and 88 deletions

View File

@ -2,11 +2,10 @@
import Link from 'next/link'; import Link from 'next/link';
import { Edit, Pencil, Share } from 'lucide-react'; import { Edit } from 'lucide-react';
import { useSession } from 'next-auth/react'; import { useSession } from 'next-auth/react';
import { match } from 'ts-pattern';
import { Document, DocumentStatus, Recipient, SigningStatus, User } from '@documenso/prisma/client'; import { Document, Recipient, User } from '@documenso/prisma/client';
import { Button } from '@documenso/ui/primitives/button'; import { Button } from '@documenso/ui/primitives/button';
export type DataTableActionButtonProps = { export type DataTableActionButtonProps = {
@ -23,43 +22,12 @@ export const DataTableActionButton = ({ row }: DataTableActionButtonProps) => {
return null; return null;
} }
const recipient = row.Recipient.find((recipient) => recipient.email === session.user.email); return (
<Button className="w-24" asChild>
const isOwner = row.User.id === session.user.id; <Link href={`/documents/${row.id}`}>
const isRecipient = !!recipient; <Edit className="-ml-1 mr-2 h-4 w-4" />
const isDraft = row.status === DocumentStatus.DRAFT; Edit
const isPending = row.status === DocumentStatus.PENDING; </Link>
const isComplete = row.status === DocumentStatus.COMPLETED; </Button>
const isSigned = recipient?.signingStatus === SigningStatus.SIGNED; );
return match({
isOwner,
isRecipient,
isDraft,
isPending,
isComplete,
isSigned,
})
.with({ isOwner: true, isDraft: true }, () => (
<Button className="w-24" asChild>
<Link href={`/documents/${row.id}`}>
<Edit className="-ml-1 mr-2 h-4 w-4" />
Edit
</Link>
</Button>
))
.with({ isRecipient: true, isPending: true, isSigned: false }, () => (
<Button className="w-24" asChild>
<Link href={`/sign/${recipient?.token}`}>
<Pencil className="-ml-1 mr-2 h-4 w-4" />
Sign
</Link>
</Button>
))
.otherwise(() => (
<Button className="w-24" disabled>
<Share className="-ml-1 mr-2 h-4 w-4" />
Share
</Button>
));
}; };

View File

@ -1,18 +1,6 @@
'use client'; 'use client';
import Link from 'next/link'; import { Copy, Download, History, MoreHorizontal, Trash2, XCircle } from 'lucide-react';
import {
Copy,
Download,
Edit,
History,
MoreHorizontal,
Pencil,
Share,
Trash2,
XCircle,
} from 'lucide-react';
import { useSession } from 'next-auth/react'; import { useSession } from 'next-auth/react';
import { getFile } from '@documenso/lib/universal/upload/get-file'; import { getFile } from '@documenso/lib/universal/upload/get-file';
@ -42,8 +30,6 @@ export const DataTableActionDropdown = ({ row }: DataTableActionDropdownProps) =
} }
const recipient = row.Recipient.find((recipient) => recipient.email === session.user.email); const recipient = row.Recipient.find((recipient) => recipient.email === session.user.email);
const isOwner = row.User.id === session.user.id;
// const isRecipient = !!recipient; // const isRecipient = !!recipient;
// const isDraft = row.status === DocumentStatus.DRAFT; // const isDraft = row.status === DocumentStatus.DRAFT;
// const isPending = row.status === DocumentStatus.PENDING; // const isPending = row.status === DocumentStatus.PENDING;

View File

@ -1,4 +1,3 @@
import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-session';
import { findDocuments } from '@documenso/lib/server-only/admin/get-all-documents'; import { findDocuments } from '@documenso/lib/server-only/admin/get-all-documents';
import { DocumentsDataTable } from './data-table'; import { DocumentsDataTable } from './data-table';
@ -15,10 +14,6 @@ export default async function Documents({ searchParams = {} }: DocumentsPageProp
const perPage = Number(searchParams.perPage) || 20; const perPage = Number(searchParams.perPage) || 20;
const results = await findDocuments({ const results = await findDocuments({
orderBy: {
column: 'createdAt',
direction: 'desc',
},
page, page,
perPage, perPage,
}); });

View File

@ -1,3 +0,0 @@
export default function UserDocuments() {
return <h1>User docs</h1>;
}

View File

@ -105,13 +105,7 @@ export const UsersDataTable = ({ users, perPage, page, totalPages }: UsersDataTa
header: 'Documents', header: 'Documents',
accessorKey: 'documents', accessorKey: 'documents',
cell: ({ row }) => { cell: ({ row }) => {
return ( return <div>{row.original.Document.length}</div>;
<div>
<Link href={`/admin/users/${row.original.id}/documents`}>
{row.original.Document.length}
</Link>
</div>
);
}, },
}, },
{ {

View File

@ -1,25 +1,12 @@
import { prisma } from '@documenso/prisma'; import { prisma } from '@documenso/prisma';
import { Document } from '@documenso/prisma/client';
export interface FindDocumentsOptions { export interface FindDocumentsOptions {
term?: string; term?: string;
page?: number; page?: number;
perPage?: number; perPage?: number;
orderBy?: {
column: keyof Omit<Document, 'document'>;
direction: 'asc' | 'desc';
};
} }
export const findDocuments = async ({ export const findDocuments = async ({ term, page = 1, perPage = 10 }: FindDocumentsOptions) => {
term,
page = 1,
perPage = 10,
orderBy,
}: FindDocumentsOptions) => {
const orderByColumn = orderBy?.column ?? 'createdAt';
const orderByDirection = orderBy?.direction ?? 'desc';
const termFilters = !term const termFilters = !term
? undefined ? undefined
: ({ : ({
@ -37,7 +24,7 @@ export const findDocuments = async ({
skip: Math.max(page - 1, 0) * perPage, skip: Math.max(page - 1, 0) * perPage,
take: perPage, take: perPage,
orderBy: { orderBy: {
[orderByColumn]: orderByDirection, createdAt: 'desc',
}, },
include: { include: {
User: { User: {

View File

@ -16,7 +16,7 @@ import { Popover, PopoverContent, PopoverTrigger } from '@documenso/ui/primitive
type ComboboxProps = { type ComboboxProps = {
listValues: string[]; listValues: string[];
onChange: (values: string[]) => void; onChange: (_values: string[]) => void;
}; };
const Combobox = ({ listValues, onChange }: ComboboxProps) => { const Combobox = ({ listValues, onChange }: ComboboxProps) => {