From d9c0c43154ba6e2bbeb55ec63a896dc6c49b4d75 Mon Sep 17 00:00:00 2001 From: Jessica Rynkar <67977755+jessrynkar@users.noreply.github.com> Date: Tue, 13 May 2025 11:13:23 +0100 Subject: [PATCH] fix(ui): passes value to server component args (#12352) ### What? Allows the field value (if defined) to be accessed from `args` with custom server components. ### Why? Documentation states that the user can access `args.value` to get the value of the field at time of render (if a value is defined) when using a custom server component - however this isn't currently setup. Screenshot 2025-05-08 at 4 51 30 PM Link to docs [here](https://payloadcms.com/docs/fields/overview#default-props). ### How? Passes the value from `data` if it exists (does not exist for all field types) and adds `value` to the server component types as an optional property. Fixes #10389 --- packages/payload/src/admin/forms/Field.ts | 1 + packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/payload/src/admin/forms/Field.ts b/packages/payload/src/admin/forms/Field.ts index d6fd4d626..13debab2b 100644 --- a/packages/payload/src/admin/forms/Field.ts +++ b/packages/payload/src/admin/forms/Field.ts @@ -91,6 +91,7 @@ export type ServerComponentProps = { req: PayloadRequest siblingData: Data user: User + value?: unknown } export type ClientFieldBase< diff --git a/packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx b/packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx index 2658d7003..24e6b159f 100644 --- a/packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx +++ b/packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx @@ -100,6 +100,7 @@ export const renderField: RenderFieldMethod = ({ req, siblingData, user: req.user, + value: 'name' in fieldConfig && data?.[fieldConfig.name], } switch (fieldConfig.type) {