diff --git a/packages/lib/server-only/template/duplicate-template.ts b/packages/lib/server-only/template/duplicate-template.ts index 963d78bde..9e22bf695 100644 --- a/packages/lib/server-only/template/duplicate-template.ts +++ b/packages/lib/server-only/template/duplicate-template.ts @@ -1,3 +1,5 @@ +import { omit } from 'remeda'; + import { nanoid } from '@documenso/lib/universal/id'; import { prisma } from '@documenso/prisma'; import type { Prisma } from '@documenso/prisma/client'; @@ -38,6 +40,7 @@ export const duplicateTemplate = async ({ Recipient: true, Field: true, templateDocumentData: true, + templateMeta: true, }, }); @@ -53,6 +56,14 @@ export const duplicateTemplate = async ({ }, }); + let templateMeta: Prisma.TemplateCreateArgs['data']['templateMeta'] | undefined = undefined; + + if (template.templateMeta) { + templateMeta = { + create: omit(template.templateMeta, ['id', 'templateId']), + }; + } + const duplicatedTemplate = await prisma.template.create({ data: { userId, @@ -66,8 +77,8 @@ export const duplicateTemplate = async ({ token: nanoid(), })), }, + templateMeta, }, - include: { Recipient: true, }, diff --git a/packages/ui/primitives/template-flow/add-template-settings.tsx b/packages/ui/primitives/template-flow/add-template-settings.tsx index 73302ae55..165802015 100644 --- a/packages/ui/primitives/template-flow/add-template-settings.tsx +++ b/packages/ui/primitives/template-flow/add-template-settings.tsx @@ -4,7 +4,6 @@ import { useEffect } from 'react'; import { zodResolver } from '@hookform/resolvers/zod'; import { Trans } from '@lingui/macro'; -import { useLingui } from '@lingui/react'; import { InfoIcon } from 'lucide-react'; import { useForm } from 'react-hook-form'; @@ -74,8 +73,6 @@ export const AddTemplateSettingsFormPartial = ({ template, onSubmit, }: AddTemplateSettingsFormProps) => { - const { _ } = useLingui(); - const { documentAuthOption } = extractDocumentAuthMethods({ documentAuth: template.authOptions, }); @@ -102,7 +99,7 @@ export const AddTemplateSettingsFormPartial = ({ // We almost always want to set the timezone to the user's local timezone to avoid confusion // when the document is signed. useEffect(() => { - if (!form.formState.touchedFields.meta?.timezone) { + if (!form.formState.touchedFields.meta?.timezone && !template.templateMeta?.timezone) { form.setValue('meta.timezone', Intl.DateTimeFormat().resolvedOptions().timeZone); } }, [form, form.setValue, form.formState.touchedFields.meta?.timezone]);