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 <cursoragent@cursor.com> * 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 <sahityajb@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
devin-ai-integration[bot]
Pallav
Sahitya Chandra
parent
b74dd3227c
commit
66fc0465bd
@@ -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 <span>{t(label)}</span>;
|
||||
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 <span>{t(label || defaultLabelFromTypeConfig)}</span>;
|
||||
}
|
||||
|
||||
function VariantSelector() {
|
||||
@@ -1050,4 +1056,4 @@ function VariantFields({
|
||||
</ul>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -68,7 +68,7 @@ const configMap: Record<FieldType, Omit<z.infer<typeof fieldTypeConfigSchema>, "
|
||||
{
|
||||
name: "fullName",
|
||||
type: "text",
|
||||
label: "your_name",
|
||||
label: "",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -9,10 +9,21 @@ type ConfigVariants = NonNullable<ReturnType<typeof getConfig>>["variants"];
|
||||
type Field = z.infer<typeof fieldSchema>;
|
||||
type Translate = ReturnType<typeof useLocale>["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<Field, "variantsConfig" | "type">) => {
|
||||
export const getTranslatedConfig = (field: Pick<Field, "variantsConfig" | "type">, 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,
|
||||
|
||||
Reference in New Issue
Block a user