fix: rebase

This commit is contained in:
David Nguyen
2025-06-12 17:46:03 +10:00
parent e3ce7f94e6
commit 5f17288af6
12 changed files with 210 additions and 25 deletions
@@ -30,3 +30,26 @@ export const getRecipientsForDocument = async ({
return recipients;
};
export interface GetAllRecipientsByDocumentIdOptions {
documentId: number;
}
export const getAllRecipientsByDocumentId = async ({
documentId,
}: GetAllRecipientsByDocumentIdOptions) => {
const recipients = await prisma.recipient.findMany({
where: {
documentId,
},
select: {
role: true,
signingStatus: true,
},
orderBy: {
id: 'asc',
},
});
return recipients;
};
+22 -1
View File
@@ -1,8 +1,29 @@
import type { Document } from '@prisma/client';
import { DocumentStatus } from '@prisma/client';
import { DocumentStatus, RecipientRole, SigningStatus } from '@prisma/client';
export const isDocumentCompleted = (document: Pick<Document, 'status'> | DocumentStatus) => {
const status = typeof document === 'string' ? document : document.status;
return status === DocumentStatus.COMPLETED || status === DocumentStatus.REJECTED;
};
export const isDocumentBeingProcessed = (document: {
status: DocumentStatus;
deletedAt: Date | null;
recipients: Array<{
role: RecipientRole;
signingStatus: SigningStatus;
}>;
}) => {
if (document.status !== DocumentStatus.PENDING || document.deletedAt !== null) {
return false;
}
const recipients = document.recipients.filter((r) => r.role !== RecipientRole.CC);
if (recipients.length === 0) {
return false;
}
return recipients.every((r) => r.signingStatus === SigningStatus.SIGNED);
};
@@ -16,7 +16,7 @@ export type DocumentDialogProps = {
/**
* A dialog which renders the provided document.
*/
export default function DocumentDialog({ trigger, documentData, ...props }: DocumentDialogProps) {
export const DocumentDialog = ({ trigger, documentData, ...props }: DocumentDialogProps) => {
const [documentLoaded, setDocumentLoaded] = useState(false);
const onDocumentLoad = () => {
@@ -58,4 +58,4 @@ export default function DocumentDialog({ trigger, documentData, ...props }: Docu
</DialogPortal>
</Dialog>
);
}
};