fix: improve recipient status display

Improves the display of the recipients status when
distribution method is set to none.

Previously we had a ton of checks for sendStatus = SENT
which will never trigger when distributing manually causing
some confusion.
This commit is contained in:
Mythie
2024-12-31 14:54:19 +11:00
parent 9d83bda12c
commit 08d3d6a80a
2 changed files with 16 additions and 8 deletions

View File

@ -1,5 +1,11 @@
import type { Recipient } from '@documenso/prisma/client'; import type { Recipient } from '@documenso/prisma/client';
import { ReadStatus, RecipientRole, SendStatus, SigningStatus } from '@documenso/prisma/client'; import {
DocumentDistributionMethod,
ReadStatus,
RecipientRole,
SendStatus,
SigningStatus,
} from '@documenso/prisma/client';
export enum RecipientStatusType { export enum RecipientStatusType {
COMPLETED = 'completed', COMPLETED = 'completed',
@ -9,11 +15,11 @@ export enum RecipientStatusType {
REJECTED = 'rejected', REJECTED = 'rejected',
} }
export const getRecipientType = (recipient: Recipient) => { export const getRecipientType = (
if ( recipient: Recipient,
recipient.role === RecipientRole.CC || distributionMethod: DocumentDistributionMethod = DocumentDistributionMethod.EMAIL,
(recipient.sendStatus === SendStatus.SENT && recipient.signingStatus === SigningStatus.SIGNED) ) => {
) { if (recipient.role === RecipientRole.CC || recipient.signingStatus === SigningStatus.SIGNED) {
return RecipientStatusType.COMPLETED; return RecipientStatusType.COMPLETED;
} }
@ -22,7 +28,6 @@ export const getRecipientType = (recipient: Recipient) => {
} }
if ( if (
recipient.sendStatus === SendStatus.SENT &&
recipient.readStatus === ReadStatus.OPENED && recipient.readStatus === ReadStatus.OPENED &&
recipient.signingStatus === SigningStatus.NOT_SIGNED recipient.signingStatus === SigningStatus.NOT_SIGNED
) { ) {
@ -30,6 +35,7 @@ export const getRecipientType = (recipient: Recipient) => {
} }
if ( if (
distributionMethod === DocumentDistributionMethod.EMAIL &&
recipient.sendStatus === SendStatus.SENT && recipient.sendStatus === SendStatus.SENT &&
recipient.signingStatus === SigningStatus.NOT_SIGNED recipient.signingStatus === SigningStatus.NOT_SIGNED
) { ) {

View File

@ -2,7 +2,7 @@ import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-log
import type { RequestMetadata } from '@documenso/lib/universal/extract-request-metadata'; import type { RequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
import { createDocumentAuditLogData } from '@documenso/lib/utils/document-audit-logs'; import { createDocumentAuditLogData } from '@documenso/lib/utils/document-audit-logs';
import { prisma } from '@documenso/prisma'; import { prisma } from '@documenso/prisma';
import { ReadStatus } from '@documenso/prisma/client'; import { ReadStatus, SendStatus } from '@documenso/prisma/client';
import { WebhookTriggerEvents } from '@documenso/prisma/client'; import { WebhookTriggerEvents } from '@documenso/prisma/client';
import type { TDocumentAccessAuthTypes } from '../../types/document-auth'; import type { TDocumentAccessAuthTypes } from '../../types/document-auth';
@ -39,6 +39,8 @@ export const viewedDocument = async ({
id: recipient.id, id: recipient.id,
}, },
data: { data: {
// This handles cases where distribution is done manually
sendStatus: SendStatus.SENT,
readStatus: ReadStatus.OPENED, readStatus: ReadStatus.OPENED,
}, },
}); });