diff --git a/apps/web/src/app/(signing)/sign/[token]/initials-field.tsx b/apps/web/src/app/(signing)/sign/[token]/initials-field.tsx index d8e688325..19e74f955 100644 --- a/apps/web/src/app/(signing)/sign/[token]/initials-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/initials-field.tsx @@ -6,6 +6,7 @@ import { useRouter } from 'next/navigation'; import { Loader } from 'lucide-react'; +import { useDebouncedValue } from '@documenso/lib/client-only/hooks/use-debounced-value'; import { DO_NOT_INVALIDATE_QUERY_ON_MUTATION } from '@documenso/lib/constants/trpc'; import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import type { TRecipientActionAuth } from '@documenso/lib/types/document-auth'; @@ -42,6 +43,8 @@ export const InitialsField = ({ const { fullName } = useRequiredSigningContext(); const initials = extractInitials(fullName); + const debouncedTerm = useDebouncedValue(initials, 5000); + const [isPending, startTransition] = useTransition(); const { executeActionAuthProcedure } = useRequiredDocumentAuthContext(); @@ -58,7 +61,7 @@ export const InitialsField = ({ const onSign = async (authOptions?: TRecipientActionAuth) => { try { - const value = initials ?? ''; + const value = debouncedTerm ?? ''; const payload: TSignFieldWithTokenMutationSchema = { token: recipient.token, @@ -126,7 +129,7 @@ export const InitialsField = ({ actionTarget: field.type, }); } - }, [field]); + }, [field, debouncedTerm]); return ( diff --git a/apps/web/src/app/(signing)/sign/[token]/signing-field-container.tsx b/apps/web/src/app/(signing)/sign/[token]/signing-field-container.tsx index abcf78d84..ae0e4bbbb 100644 --- a/apps/web/src/app/(signing)/sign/[token]/signing-field-container.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/signing-field-container.tsx @@ -67,7 +67,7 @@ export const SigningFieldContainer = ({ const parsedFieldMeta = field.fieldMeta ? ZFieldMetaSchema.parse(field.fieldMeta) : undefined; const readOnlyField = parsedFieldMeta?.readOnly || false; - const automatedFields = ['Initials', 'Email', 'Name', 'Date'].includes(type ?? ''); + const automatedFields = ['Email', 'Date'].includes(type ?? ''); const handleInsertField = async () => { if (field.inserted || !onSign) { @@ -147,7 +147,7 @@ export const SigningFieldContainer = ({ )} - {type === 'Date' && field.inserted && !loading && !readOnlyField && ( + {field.inserted && !automatedFields && !loading && !readOnlyField && ( - )} + {type !== 'Checkbox' && + !automatedFields && + field.inserted && + !loading && + !readOnlyField && ( + + )} {children}