+ {type === 'boolean' ? (
+
+
+
+ handleChange(fieldName, isChecked)
+ }
+ />
+ {label}
+
+
+ ) : type === 'select' && Array.isArray(options) ? (
+
+
+ {label}
+
+
+
+ ) : type === 'password' ? (
+ <>
+
+ {label}
+ {
+ handleChange(fieldName, value);
+ if (passwordRepeat !== undefined && formRef.current) {
+ const target = formRef.current.elements.namedItem(
+ passwordRepeat.name
+ ) as HTMLInputElement | null;
+
+ if (target) {
+ target.setCustomValidity(
+ target.value && target.value === value
+ ? ''
+ : userText.passwordsDoNotMatchError()
+ );
+ }
+ }
+ }}
+ />
+
+
+ {passwordRepeat === undefined ? null : (
+
+ {passwordRepeat.label}
+ {
+ target.setCustomValidity(
+ target.value ===
+ getFormValue(formData, currentStep, fieldName)
+ ? ''
+ : userText.passwordsDoNotMatchError()
+ );
+ }}
+ onValueChange={(value) =>
+ setTemporaryFormData((previous) => ({
+ ...previous,
+ [passwordRepeat.name]: value,
+ }))
+ }
+ />
+
+ )}
+ >
+ ) : type === 'object' ? (
+ // Subforms
+
+
+ {label}
+
+ {fields ? renderFormFields(fields, name) : null}
+
+ ) : (
+
+ {label}
+ handleChange(fieldName, value)}
+ />
+
+ )}
+
+ );
+ };
+
+ const renderFormFields = (fields: RA