From c10c87c98ec294581bf8ad98b07345ab124fcd3f Mon Sep 17 00:00:00 2001 From: Lauris Skraucis Date: Thu, 2 Jan 2025 12:31:43 +0100 Subject: [PATCH] fix: booker atom booking fields (#18441) --- .../atom-api-transformers/transformApiEventTypeForAtom.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/platform/atoms/event-types/atom-api-transformers/transformApiEventTypeForAtom.ts b/packages/platform/atoms/event-types/atom-api-transformers/transformApiEventTypeForAtom.ts index c282882b01..1c29f1d503 100644 --- a/packages/platform/atoms/event-types/atom-api-transformers/transformApiEventTypeForAtom.ts +++ b/packages/platform/atoms/event-types/atom-api-transformers/transformApiEventTypeForAtom.ts @@ -352,18 +352,21 @@ function getBookingFields( if (!hasRescheduleReasonField) { systemAfterFields.push(systemAfterFieldRescheduleReason); } + + const fieldsWithSystem = [...systemBeforeFields, ...transformedBookingFields, ...systemAfterFields]; + // note(Lauris): in web app booking form values can be passed as url query params, but booker atom does not accept booking field values via url, // so defaultFormValues act as a way to prefill booking form fields, and if the field in database has disableOnPrefill=true and value passed then its read only. const defaultFormValuesKeys = defaultFormValues ? Object.keys(defaultFormValues) : []; if (defaultFormValuesKeys.length) { - for (const field of transformedBookingFields) { + for (const field of fieldsWithSystem) { if (defaultFormValuesKeys.includes(field.name) && field.disableOnPrefill) { field.editable = "user-readonly"; } } } - return eventTypeBookingFields.brand<"HAS_SYSTEM_FIELDS">().parse(transformedBookingFields); + return eventTypeBookingFields.brand<"HAS_SYSTEM_FIELDS">().parse(fieldsWithSystem); } function isCustomField(