mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
## Description Refactor the "use template" flow ## Changes Made - Add placeholders for recipients - Add audit log when document is created - Trigger DOCUMENT_CREATED webhook when document is created - Remove role field when using template - Remove flaky logic when associating template recipients with form recipients - Refactor to use `Form` ### Using template when document has no recipients <img width="529" alt="image" src="https://github.com/documenso/documenso/assets/20962767/a8494ac9-0397-4e3b-a0cf-818c8454a55c"> ### Using template with recipients <img width="529" alt="image" src="https://github.com/documenso/documenso/assets/20962767/54d949fc-ed6a-4318-bfd6-6a3179896ba9"> ### Using template with the send option selected <img width="529" alt="image" src="https://github.com/documenso/documenso/assets/20962767/541b2664-0540-43e9-83dd-e040a45a44ea">
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { z } from 'zod';
|
|
|
|
export const ZCreateTemplateMutationSchema = z.object({
|
|
title: z.string().min(1).trim(),
|
|
teamId: z.number().optional(),
|
|
templateDocumentDataId: z.string().min(1),
|
|
});
|
|
|
|
export const ZCreateDocumentFromTemplateMutationSchema = z.object({
|
|
templateId: z.number(),
|
|
teamId: z.number().optional(),
|
|
recipients: z
|
|
.array(
|
|
z.object({
|
|
id: z.number(),
|
|
email: z.string().email(),
|
|
name: z.string().optional(),
|
|
}),
|
|
)
|
|
.refine((recipients) => {
|
|
const emails = recipients.map((signer) => signer.email);
|
|
return new Set(emails).size === emails.length;
|
|
}, 'Recipients must have unique emails'),
|
|
sendDocument: z.boolean().optional(),
|
|
});
|
|
|
|
export const ZDuplicateTemplateMutationSchema = z.object({
|
|
templateId: z.number(),
|
|
teamId: z.number().optional(),
|
|
});
|
|
|
|
export const ZDeleteTemplateMutationSchema = z.object({
|
|
id: z.number().min(1),
|
|
});
|
|
|
|
export type TCreateTemplateMutationSchema = z.infer<typeof ZCreateTemplateMutationSchema>;
|
|
export type TCreateDocumentFromTemplateMutationSchema = z.infer<
|
|
typeof ZCreateDocumentFromTemplateMutationSchema
|
|
>;
|
|
|
|
export type TDuplicateTemplateMutationSchema = z.infer<typeof ZDuplicateTemplateMutationSchema>;
|
|
export type TDeleteTemplateMutationSchema = z.infer<typeof ZDeleteTemplateMutationSchema>;
|