From 66fc0465bdceba9da8fbaef9edeb3e7b9c9a806a Mon Sep 17 00:00:00 2001 From: Kartik <103111467+kartik-212004@users.noreply.github.com> Date: Fri, 6 Feb 2026 16:58:31 +0530 Subject: [PATCH] fix: Form Builder Name Field Shows Default Label When Custom Label is Empty (#24201) * removed previious pr ommit from thi sone * fixed addressed issues * fallback to non-empty label for variant fields * fallback to default label * normalize empty labels and fallback to default when label equals field name * fix: initially use empty label for name field (fullName variant) Co-authored-by: Cursor * fix: remove normalization of empty field labels in FormBuilder * fix: enhance label handling in getTranslatedConfigVariants function * Update apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: Pallav <90088723+Pallava-Joshi@users.noreply.github.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Sahitya Chandra Co-authored-by: Cursor --- .../components/tabs/advanced/FormBuilder.tsx | 14 +++++++++---- packages/features/form-builder/fieldTypes.ts | 2 +- .../form-builder/utils/variantsConfig.ts | 21 ++++++++++++++++--- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx b/apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx index 150f5cbcfb..52f21ab4c5 100644 --- a/apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx +++ b/apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx @@ -909,9 +909,15 @@ function FieldLabel({ field }: { field: RhfFormField }) { `Field has \`variantsConfig\` but no \`defaultVariant\`${JSON.stringify(fieldTypeConfigVariantsConfig)}` ); } - const label = - variantsConfigVariants?.[variant as keyof typeof fieldTypeConfigVariants]?.fields?.[0]?.label || ""; - return {t(label)}; + const variantData = variantsConfigVariants?.[variant as keyof typeof fieldTypeConfigVariants]; + const firstField = variantData?.fields?.[0]; + const label = firstField?.label?.trim() ? firstField.label : ""; + const firstFieldName = firstField?.name; + const defaultLabelFromTypeConfig = + fieldTypeConfigVariants?.[variant as keyof typeof fieldTypeConfigVariants]?.fieldsMap?.[ + firstFieldName as keyof (typeof fieldTypeConfigVariants)[typeof variant]["fieldsMap"] + ]?.defaultLabel || ""; + return {t(label || defaultLabelFromTypeConfig)}; } function VariantSelector() { @@ -1050,4 +1056,4 @@ function VariantFields({ ); -} +} \ No newline at end of file diff --git a/packages/features/form-builder/fieldTypes.ts b/packages/features/form-builder/fieldTypes.ts index 2d1cde6849..9ae8db1aed 100644 --- a/packages/features/form-builder/fieldTypes.ts +++ b/packages/features/form-builder/fieldTypes.ts @@ -68,7 +68,7 @@ const configMap: Record, " { name: "fullName", type: "text", - label: "your_name", + label: "", required: true, }, ], diff --git a/packages/features/form-builder/utils/variantsConfig.ts b/packages/features/form-builder/utils/variantsConfig.ts index db41a5a3e2..0e0b9db233 100644 --- a/packages/features/form-builder/utils/variantsConfig.ts +++ b/packages/features/form-builder/utils/variantsConfig.ts @@ -9,10 +9,21 @@ type ConfigVariants = NonNullable>["variants"]; type Field = z.infer; type Translate = ReturnType["t"]; -function getTranslatedConfigVariants(configVariants: ConfigVariants, translate: Translate) { +function getTranslatedConfigVariants( + configVariants: ConfigVariants, + translate: Translate, + fieldType: Field["type"] +) { + const fieldTypeVariantsConfig = fieldTypesConfigMap[fieldType]?.variantsConfig?.variants; + return Object.entries(configVariants).reduce((variantsConfigVariants, [variantName, variant]) => { + const variantFieldsMap = fieldTypeVariantsConfig?.[variantName as keyof typeof fieldTypeVariantsConfig] + ?.fieldsMap; + const translatedFields = variant.fields.map((field) => { - const label = field.label ?? ""; + const defaultLabel = + variantFieldsMap?.[field.name as keyof typeof variantFieldsMap]?.defaultLabel ?? ""; + const label = (field.label?.trim() ? field.label : defaultLabel) ?? ""; const placeholder = field.placeholder ?? ""; return { ...field, @@ -50,7 +61,11 @@ export const getConfig = (field: Pick) => { export const getTranslatedConfig = (field: Pick, translate: Translate) => { const variantsConfig = getConfig(field); if (!variantsConfig) return variantsConfig; - const newVariantsConfigVariants = getTranslatedConfigVariants(variantsConfig.variants, translate); + const newVariantsConfigVariants = getTranslatedConfigVariants( + variantsConfig.variants, + translate, + field.type + ); return { ...variantsConfig,