From d11ec8fa2a3ac570fbfd2cf7a5b873886503e4a2 Mon Sep 17 00:00:00 2001 From: Catalin Pit Date: Wed, 11 Jun 2025 05:28:39 +0300 Subject: [PATCH] feat: show field coordinates in devmode (#1802) Show the fields coordinates when the `devmode` search param is present. It's meant to help API users understand where to position the fields. --- .../documentation/pages/developers/_meta.json | 1 + .../developer-mode/field-coordinates.mdx | 18 ++++++++++++++++++ .../developer-mode/field-coordinates.webp | Bin 0 -> 32076 bytes .../primitives/document-flow/add-fields.tsx | 1 - .../primitives/document-flow/field-item.tsx | 10 ++++++++++ 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 apps/documentation/pages/developers/developer-mode/field-coordinates.mdx create mode 100644 apps/documentation/public/developer-mode/field-coordinates.webp diff --git a/apps/documentation/pages/developers/_meta.json b/apps/documentation/pages/developers/_meta.json index 0057496b3..b3238257d 100644 --- a/apps/documentation/pages/developers/_meta.json +++ b/apps/documentation/pages/developers/_meta.json @@ -5,6 +5,7 @@ "title": "Development & Deployment" }, "local-development": "Local Development", + "developer-mode": "Developer Mode", "self-hosting": "Self Hosting", "contributing": "Contributing", "-- API & Integration Guides": { diff --git a/apps/documentation/pages/developers/developer-mode/field-coordinates.mdx b/apps/documentation/pages/developers/developer-mode/field-coordinates.mdx new file mode 100644 index 000000000..7489912e6 --- /dev/null +++ b/apps/documentation/pages/developers/developer-mode/field-coordinates.mdx @@ -0,0 +1,18 @@ +--- +title: Field Coordinates +description: Learn how to get the coordinates of a field in a document. +--- + +## Field Coordinates + +Field coordinates represent the position of a field in a document. They are returned in the `pageX` and `pageY` properties of the field. + +To enable field coordinates, you can use the `devmode` query parameter. + +```bash +https://app.documenso.com/documents//edit?devmode=true +``` + +You should then see the coordinates on top of each field. + +![Field Coordinates](/developer-mode/field-coordinates.webp) diff --git a/apps/documentation/public/developer-mode/field-coordinates.webp b/apps/documentation/public/developer-mode/field-coordinates.webp new file mode 100644 index 0000000000000000000000000000000000000000..2089e8b15f9b5d4cf0e8b01918b978f0d0b5ecbf GIT binary patch literal 32076 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 literal 0 HcmV?d00001 diff --git a/packages/ui/primitives/document-flow/add-fields.tsx b/packages/ui/primitives/document-flow/add-fields.tsx index 8325b3053..03c91d99b 100644 --- a/packages/ui/primitives/document-flow/add-fields.tsx +++ b/packages/ui/primitives/document-flow/add-fields.tsx @@ -166,7 +166,6 @@ export const AddFieldsFormPartial = ({ const [selectedField, setSelectedField] = useState(null); const [selectedSigner, setSelectedSigner] = useState(null); - const [showRecipientsSelector, setShowRecipientsSelector] = useState(false); const [lastActiveField, setLastActiveField] = useState( null, ); diff --git a/packages/ui/primitives/document-flow/field-item.tsx b/packages/ui/primitives/document-flow/field-item.tsx index 2fa2a2199..daaf96dd7 100644 --- a/packages/ui/primitives/document-flow/field-item.tsx +++ b/packages/ui/primitives/document-flow/field-item.tsx @@ -6,6 +6,7 @@ import { FieldType } from '@prisma/client'; import { CopyPlus, Settings2, SquareStack, Trash } from 'lucide-react'; import { createPortal } from 'react-dom'; import { Rnd } from 'react-rnd'; +import { useSearchParams } from 'react-router'; import { PDF_VIEWER_PAGE_SELECTOR } from '@documenso/lib/constants/pdf-viewer'; import type { TFieldMetaSchema } from '@documenso/lib/types/field-meta'; @@ -69,6 +70,7 @@ export const FieldItem = ({ onFieldDeactivate, }: FieldItemProps) => { const { _ } = useLingui(); + const [searchParams] = useSearchParams(); const [coords, setCoords] = useState({ pageX: 0, @@ -81,6 +83,8 @@ export const FieldItem = ({ const signerStyles = useRecipientColors(recipientIndex); + const isDevMode = searchParams.get('devmode') === 'true'; + const advancedField = [ 'NUMBER', 'RADIO', @@ -303,6 +307,12 @@ export const FieldItem = ({ (field.signerEmail?.charAt(1)?.toUpperCase() ?? '')} + + {isDevMode && ( +
+ {`x: ${field.pageX.toFixed(2)}, y: ${field.pageY.toFixed(2)}`} +
+ )} {!disabled && settingsActive && (