feat: dialog to enter custom recipients for creating document from template

This commit is contained in:
Ephraim Atta-Duncan
2024-02-20 19:11:12 +00:00
parent 4d286e01d1
commit 6ee896048e
6 changed files with 270 additions and 53 deletions

View File

@ -38,6 +38,7 @@ export const findTemplates = async ({
include: {
templateDocumentData: true,
Field: true,
Recipient: true,
},
skip: Math.max(page - 1, 0) * perPage,
orderBy: {

View File

@ -52,6 +52,7 @@ export const templateRouter = router({
return await createDocumentFromTemplate({
templateId,
userId: ctx.user.id,
recipients: input.recipients,
});
} catch (err) {
throw new TRPCError({

View File

@ -1,5 +1,7 @@
import { z } from 'zod';
import { RecipientRole } from '@documenso/prisma/client';
export const ZCreateTemplateMutationSchema = z.object({
title: z.string().min(1).trim(),
teamId: z.number().optional(),
@ -8,6 +10,15 @@ export const ZCreateTemplateMutationSchema = z.object({
export const ZCreateDocumentFromTemplateMutationSchema = z.object({
templateId: z.number(),
recipients: z
.array(
z.object({
email: z.string().email(),
name: z.string(),
role: z.nativeEnum(RecipientRole),
}),
)
.optional(),
});
export const ZDuplicateTemplateMutationSchema = z.object({

View File

@ -32,7 +32,7 @@ import {
import { ShowFieldItem } from './show-field-item';
import type { DocumentFlowStep } from './types';
const ROLE_ICONS: Record<RecipientRole, JSX.Element> = {
export const ROLE_ICONS: Record<RecipientRole, JSX.Element> = {
SIGNER: <PencilLine className="h-4 w-4" />,
APPROVER: <BadgeCheck className="h-4 w-4" />,
CC: <Copy className="h-4 w-4" />,