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,