From 6be76034b4f7e94a634adbf852b75f9acb3ce23e Mon Sep 17 00:00:00 2001 From: Catalin Pit Date: Mon, 8 Jun 2026 09:02:11 +0300 Subject: [PATCH] refactor: update field-renderer imports and consolidate FieldRenderMode type --- .../providers/envelope-render-provider.tsx | 2 +- .../field-renderer/field-renderer.ts | 13 ++++++++- .../universal/field-renderer/render-field.ts | 29 ++----------------- 3 files changed, 15 insertions(+), 29 deletions(-) diff --git a/packages/lib/client-only/providers/envelope-render-provider.tsx b/packages/lib/client-only/providers/envelope-render-provider.tsx index b72484ef3..67f8d1405 100644 --- a/packages/lib/client-only/providers/envelope-render-provider.tsx +++ b/packages/lib/client-only/providers/envelope-render-provider.tsx @@ -7,7 +7,7 @@ import type React from 'react'; import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'; import type { TEnvelope } from '../../types/envelope'; -import type { FieldRenderMode } from '../../universal/field-renderer/render-field'; +import type { FieldRenderMode } from '../../universal/field-renderer/field-renderer'; /** * The signature data for an inserted signature field. diff --git a/packages/lib/universal/field-renderer/field-renderer.ts b/packages/lib/universal/field-renderer/field-renderer.ts index fbb8de848..ae81f3944 100644 --- a/packages/lib/universal/field-renderer/field-renderer.ts +++ b/packages/lib/universal/field-renderer/field-renderer.ts @@ -20,11 +20,22 @@ export type FieldToRender = Pick< signature?: Pick | null; }; +/** + * The render type. + * + * @default 'edit' + * + * - `edit` - The field is rendered in editor page. + * - `sign` - The field is rendered for the signing page. + * - `export` - The field is rendered for exporting and sealing into the PDF. No backgrounds, interactive elements, etc. + */ +export type FieldRenderMode = 'edit' | 'sign' | 'export'; + export type RenderFieldElementOptions = { pageLayer: Konva.Layer; pageWidth: number; pageHeight: number; - mode: 'edit' | 'sign' | 'export'; + mode: FieldRenderMode; editable?: boolean; scale: number; color?: TRecipientColor; diff --git a/packages/lib/universal/field-renderer/render-field.ts b/packages/lib/universal/field-renderer/render-field.ts index f4221c9d7..9c0e92dfd 100644 --- a/packages/lib/universal/field-renderer/render-field.ts +++ b/packages/lib/universal/field-renderer/render-field.ts @@ -1,10 +1,9 @@ import type { TRecipientColor } from '@documenso/ui/lib/recipient-colors'; -import type { Signature } from '@prisma/client'; -import { type Field, FieldType } from '@prisma/client'; +import { FieldType } from '@prisma/client'; import type Konva from 'konva'; import { match } from 'ts-pattern'; -import type { TFieldMetaSchema } from '../../types/field-meta'; +import type { FieldRenderMode, FieldToRender } from './field-renderer'; import { renderCheckboxFieldElement } from './render-checkbox-field'; import { renderDropdownFieldElement } from './render-dropdown-field'; import { renderGenericTextFieldElement } from './render-generic-text-field'; @@ -14,30 +13,6 @@ import { renderSignatureFieldElement } from './render-signature-field'; export const MIN_FIELD_HEIGHT_PX = 12; export const MIN_FIELD_WIDTH_PX = 36; -/** - * The render type. - * - * @default 'edit' - * - * - `edit` - The field is rendered in editor page. - * - `sign` - The field is rendered for the signing page. - * - `export` - The field is rendered for exporting and sealing into the PDF. No backgrounds, interactive elements, etc. - */ -export type FieldRenderMode = 'edit' | 'sign' | 'export'; - -export type FieldToRender = Pick< - Field, - 'envelopeItemId' | 'recipientId' | 'type' | 'page' | 'customText' | 'inserted' | 'recipientId' -> & { - renderId: string; // A unique ID for the field in the render. - width: number; - height: number; - positionX: number; - positionY: number; - fieldMeta?: TFieldMetaSchema | null; - signature?: Pick | null; -}; - type RenderFieldOptions = { field: FieldToRender; pageLayer: Konva.Layer;