@@ -153,7 +172,7 @@ export default function PDFSigner(props: any) {
createOrUpdateField(props.document, freeSignatureField, recipient.token).then((res) => {
setFields((prevState) => [...prevState, res]);
setDialogField(res);
- setOpen(true);
+ setSignatureDialogOpen(true);
});
return freeSignatureField;
diff --git a/apps/web/components/editor/signable-field.tsx b/apps/web/components/editor/signable-field.tsx
index 29a8559e9..c685837af 100644
--- a/apps/web/components/editor/signable-field.tsx
+++ b/apps/web/components/editor/signable-field.tsx
@@ -2,6 +2,7 @@ import React, { useState } from "react";
import { classNames } from "@documenso/lib";
import { IconButton } from "@documenso/ui";
import { XCircleIcon } from "@heroicons/react/20/solid";
+import { FieldType } from "@prisma/client";
import Draggable from "react-draggable";
const stc = require("string-to-color");
@@ -46,7 +47,9 @@ export default function SignableField(props: FieldPropsType) {
ref={nodeRef}
className={classNames(
"absolute top-0 left-0 m-auto h-16 w-48 select-none flex-row-reverse text-center text-lg font-bold opacity-80",
- field.type === "SIGNATURE" ? "cursor-pointer hover:brightness-50" : "cursor-not-allowed"
+ [FieldType.SIGNATURE, FieldType.NAME].includes(field.type)
+ ? "cursor-pointer hover:brightness-50"
+ : "cursor-not-allowed"
)}
style={{
background: stc(props.field.Recipient.email),
@@ -54,10 +57,15 @@ export default function SignableField(props: FieldPropsType) {
{field.type === "SIGNATURE" ? "SIGN HERE" : ""}
{field.type === "DATE" ? Date (filled on sign) : ""}
+ {field.type === "NAME" ? "ENTER NAME HERE" : ""}
+ className={classNames(
+ "m-auto w-auto flex-row-reverse text-center font-medium",
+ field.type === FieldType.SIGNATURE && "font-qwigley text-5xl",
+ field.type === FieldType.NAME && "font-sans text-3xl"
+ )}>
{field?.signature?.type === "type" ? (
{field?.signature.typedSignature}
) : (
diff --git a/apps/web/pages/api/documents/[id]/sign.ts b/apps/web/pages/api/documents/[id]/sign.ts
index 537d7ee72..352acbe76 100644
--- a/apps/web/pages/api/documents/[id]/sign.ts
+++ b/apps/web/pages/api/documents/[id]/sign.ts
@@ -157,7 +157,11 @@ async function postHandler(req: NextApiRequest, res: NextApiResponse) {
signedField.Signature.typedSignature,
signedField.positionX,
signedField.positionY,
- signedField.page
+ signedField.page,
+ // useHandwritingFont only for typed signatures
+ signedField.type === FieldType.SIGNATURE,
+ // fontSize only for name field
+ signedField.type === FieldType.NAME ? 30 : undefined
);
} else {
documentWithInserts = document.document;
diff --git a/packages/pdf/insertTextInPDF.ts b/packages/pdf/insertTextInPDF.ts
index b24a920c5..0e4380592 100644
--- a/packages/pdf/insertTextInPDF.ts
+++ b/packages/pdf/insertTextInPDF.ts
@@ -8,7 +8,8 @@ export async function insertTextInPDF(
positionX: number,
positionY: number,
page: number = 0,
- useHandwritingFont = true
+ useHandwritingFont = true,
+ fontSize = 15
): Promise
{
const fontBytes = fs.readFileSync("public/fonts/Qwigley-Regular.ttf");
@@ -21,7 +22,7 @@ export async function insertTextInPDF(
const pages = pdfDoc.getPages();
const pdfPage = pages[page];
- const textSize = useHandwritingFont ? 50 : 15;
+ const textSize = useHandwritingFont ? 50 : fontSize;
const textWidth = font.widthOfTextAtSize(text, textSize);
const textHeight = font.heightAtSize(textSize);
const fieldSize = { width: 192, height: 64 };
diff --git a/packages/prisma/migrations/20230419055523_doc_170_add_name_field_type/migration.sql b/packages/prisma/migrations/20230419055523_doc_170_add_name_field_type/migration.sql
new file mode 100644
index 000000000..a3412b6e6
--- /dev/null
+++ b/packages/prisma/migrations/20230419055523_doc_170_add_name_field_type/migration.sql
@@ -0,0 +1,2 @@
+-- AlterEnum
+ALTER TYPE "FieldType" ADD VALUE 'NAME';
diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma
index e5fa887c3..69f7e70ec 100644
--- a/packages/prisma/schema.prisma
+++ b/packages/prisma/schema.prisma
@@ -101,6 +101,7 @@ model Recipient {
}
enum FieldType {
+ NAME
SIGNATURE
FREE_SIGNATURE
DATE