diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index f80967618f..bb32fa8d94 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -2097,5 +2097,8 @@ "view_overlay_calendar_events":"View your calendar events to prevent clashed booking.", "lock_timezone_toggle_on_booking_page": "Lock timezone on booking page", "description_lock_timezone_toggle_on_booking_page" : "To lock the timezone on booking page, useful for in-person events.", + "click_to_learn_more" : "Click to learn more", + "edit_identifier" : "Edit identifier", + "identifier_change_not_suggested" : "It is not recommended to change the identifier. Letters, numbers & hyphens only.", "ADD_NEW_STRINGS_ABOVE_THIS_LINE_TO_PREVENT_MERGE_CONFLICTS": "↑↑↑↑↑↑↑↑↑↑↑↑↑ Add your new strings above here ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑" } diff --git a/packages/features/form-builder/FormBuilder.tsx b/packages/features/form-builder/FormBuilder.tsx index e5b6220f1e..e014f9f429 100644 --- a/packages/features/form-builder/FormBuilder.tsx +++ b/packages/features/form-builder/FormBuilder.tsx @@ -416,8 +416,10 @@ function FieldEditDialog({ const fieldTypes = Object.values(fieldTypesConfigMap); - const [identifierBadge, setIdentifierBadge] = useState(fieldForm.getValues("label") || ""); - const [identifierFieldVisible, setIdentifierFieldVisible] = useState(false); + const [identifier, setIdentifier] = useState({ + badge: fieldForm.getValues("name") || fieldForm.getValues("label") || "", + fieldVisible: false, + }); return ( @@ -455,7 +457,13 @@ function FieldEditDialog({ } placeholder={t(fieldForm.getValues("defaultLabel") || "")} onChange={(e) => { - setIdentifierBadge(e.target.value); + if (!identifier.fieldVisible) { + setIdentifier({ + ...identifier, + badge: getFieldIdentifier(e.target.value), + }); + fieldForm.setValue("name", getFieldIdentifier(e.target.value)); + } }} containerClassName="mt-6" label={t("label")} @@ -499,22 +507,19 @@ function FieldEditDialog({ - + - {!identifierFieldVisible && identifierBadge !== "" && ( + {!identifier.fieldVisible && identifier.badge !== "" && ( - {identifierBadge?.replaceAll(".", "-").replaceAll(" ", "-")} - + {getFieldIdentifier(identifier.badge)} +
{ - fieldForm.setValue( - "name", - identifierBadge?.replaceAll(".", "-").replaceAll(" ", "-") - ); - setIdentifierFieldVisible(true); + fieldForm.setValue("name", getFieldIdentifier(identifier.badge)); + setIdentifier({ ...identifier, fieldVisible: true }); }}>
@@ -522,12 +527,16 @@ function FieldEditDialog({
)} - {identifierFieldVisible && ( + {identifier.fieldVisible && ( <> { + setIdentifier({ + ...identifier, + badge: getFieldIdentifier(e.target.value || ""), + }); fieldForm.setValue("name", getFieldIdentifier(e.target.value || "")); }} disabled={ @@ -537,9 +546,7 @@ function FieldEditDialog({ label={t("identifier")} labelClassName="invisible -mb-2" /> -

- You will not be able to edit these later. Letters, numbers & hyphens only. -

+

{t("identifier_change_not_suggested")}

)}