diff --git a/apps/web/src/app/(dashboard)/documents/[id]/loading.tsx b/apps/web/src/app/(dashboard)/documents/[id]/loading.tsx index 3349ef6a4..b101385dd 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/loading.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/loading.tsx @@ -9,6 +9,7 @@ export default function Loading() { Documents +

Loading Document...

diff --git a/apps/web/src/app/(dashboard)/documents/[id]/page.tsx b/apps/web/src/app/(dashboard)/documents/[id]/page.tsx index 94fb8ad96..7ab2c331c 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/page.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/page.tsx @@ -7,8 +7,11 @@ import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get- import { getDocumentById } from '@documenso/lib/server-only/document/get-document-by-id'; import { getFieldsForDocument } from '@documenso/lib/server-only/field/get-fields-for-document'; import { getRecipientsForDocument } from '@documenso/lib/server-only/recipient/get-recipients-for-document'; +import { DocumentStatus as InternalDocumentStatus } from '@documenso/prisma/client'; +import { LazyPDFViewer } from '@documenso/ui/primitives/lazy-pdf-viewer'; import { EditDocumentForm } from '~/app/(dashboard)/documents/[id]/edit-document'; +import { StackAvatarsWithTooltip } from '~/components/(dashboard)/avatar/stack-avatars-with-tooltip'; import { DocumentStatus } from '~/components/formatter/document-status'; export type DocumentPageProps = { @@ -69,18 +72,28 @@ export default async function DocumentPage({ params }: DocumentPageProps) {
- {recipients.length} Recipient(s) + + {recipients.length} Recipient(s) +
)} - + {document.status !== InternalDocumentStatus.COMPLETED && ( + + )} + + {document.status === InternalDocumentStatus.COMPLETED && ( +
+ +
+ )} ); } diff --git a/apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx b/apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx index 7143add36..2a053a35a 100644 --- a/apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx +++ b/apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx @@ -11,7 +11,17 @@ import { import { StackAvatar } from './stack-avatar'; import { StackAvatars } from './stack-avatars'; -export const StackAvatarsWithTooltip = ({ recipients }: { recipients: Recipient[] }) => { +export type StackAvatarsWithTooltipProps = { + recipients: Recipient[]; + position?: 'top' | 'bottom'; + children?: React.ReactNode; +}; + +export const StackAvatarsWithTooltip = ({ + recipients, + position, + children, +}: StackAvatarsWithTooltipProps) => { const waitingRecipients = recipients.filter( (recipient) => getRecipientType(recipient) === 'waiting', ); @@ -32,9 +42,10 @@ export const StackAvatarsWithTooltip = ({ recipients }: { recipients: Recipient[ - + {children || } - + +
{completedRecipients.length > 0 && (