yesno field value true/false & validation on picklist

This commit is contained in:
2024-04-26 11:20:13 +01:00
parent 07faac40a7
commit 821b534e7b
+83 -50
View File
@@ -774,18 +774,35 @@ const RenderYesNo = ({
component="input" component="input"
type="radio" type="radio"
className="govuk-radios__input" className="govuk-radios__input"
value={options[key]} value={
options[key] == "Yes" ||
options[key] == "Ydw"
? true
: false
}
//checked={value == options[key]} //checked={value == options[key]}
checked={
typeof value != "undefined" &&
value ==
(options[key] == "Yes" ||
options[key] == "Ydw"
? "true"
: "false")
}
onChange={(e) => { onChange={(e) => {
let docListObj = custom.documentList; let docListObj = custom.documentList;
if ( if (
custom.requiredDocumentValue == custom.requiredDocumentValue ==
"Yes" || "Yes" ||
custom.requiredDocumentValue == custom.requiredDocumentValue ==
"Ydw" "Ydw" ||
custom.requiredDocumentValue ==
"true"
) { ) {
e.target.value == "Ydw" || e.target.value == "Ydw" ||
e.target.value == "Yes" e.target.value == "Yes" ||
e.target.value == "true"
? (docListObj = Object.assign( ? (docListObj = Object.assign(
docListObj, docListObj,
{ {
@@ -855,7 +872,7 @@ export function YesNofield(props) {
options={yesNo} options={yesNo}
id={props.name} id={props.name}
className={"govuk-radios__input"} className={"govuk-radios__input"}
validate={eval(validation)} validate={[required]}
errorMsg={t("newappeal:select-an-option-label")} errorMsg={t("newappeal:select-an-option-label")}
component={RenderYesNo} component={RenderYesNo}
inline={_.has(props, "inline") ? props.inline : "true"} inline={_.has(props, "inline") ? props.inline : "true"}
@@ -873,7 +890,7 @@ export function YesNofield(props) {
options={yesNo} options={yesNo}
id={props.name} id={props.name}
className={"govuk-radios__input"} className={"govuk-radios__input"}
validate={eval(validation)} validate={[required]}
errorMsg={t("newappeal:select-an-option-label")} errorMsg={t("newappeal:select-an-option-label")}
component={RenderYesNo} component={RenderYesNo}
inline={_.has(props, "inline") ? props.inline : "true"} inline={_.has(props, "inline") ? props.inline : "true"}
@@ -1175,10 +1192,12 @@ export function CheckBoxfield(props) {
const RenderPickList = ({ const RenderPickList = ({
datafieldname, datafieldname,
picklistData, picklistData,
id,
name, name,
label, label,
input, input,
meta: { touched, errorStr }, errorMsg,
meta: { touched, error },
}) => { }) => {
let { t } = useTranslation(); let { t } = useTranslation();
@@ -1187,56 +1206,70 @@ const RenderPickList = ({
picklistData picklistData
); );
dropdownObj = dropdownObj[0]; dropdownObj = dropdownObj[0];
return (
<div>
<select
{...input}
className="govuk-select "
id={label}
name={label}
>
<option>{t("newappeal:select-default")}</option>
{Object.keys(dropdownObj).map((key, index) => {
return (
<option key={key} value={dropdownObj[key].Value}>
{PickListTranslations(
dropdownObj[key].Label.LocalizedLabels[0].Label
)}
</option>
);
})}
</select>
{touched && errorStr && <span>{errorStr}</span>} const required = (value) => {
</div> return value || value == 0 ? undefined : "Requirewwwd";
};
return (
<>
<div
className={
touched && error
? "govuk-form-group govuk-form-group--error"
: "govuk-form-group "
}
>
<label className="govuk-label " htmlFor={id} id={id + "_label"}>
{FieldsTranslations(label)}
</label>
{touched && error && (
<span id={id + "-error"} className="govuk-error-message">
<span className="govuk-visually-hidden">Error:</span>{" "}
{error}
</span>
)}
<select
{...input}
className="govuk-select "
id={label}
name={label}
>
<option>{t("newappeal:select-default")}</option>
{Object.keys(dropdownObj).map((key, index) => {
return (
<option key={key} value={dropdownObj[key].Value}>
{PickListTranslations(
dropdownObj[key].Label.LocalizedLabels[0]
.Label
)}
</option>
);
})}
</select>
</div>
</>
); );
}; };
export function PickList(props) { export function PickList(props) {
const { name, label, datafieldname, hint } = props; const { name, label, datafieldname, hint } = props;
let { t } = useTranslation(); let { t } = useTranslation();
const required = (value) => {
return value || value == 0 ? undefined : "Is required";
};
return ( return (
<div className="govuk-form-group"> <Field
<label className="govuk-label govuk-body-m" htmlFor={props.name}> name={props.name}
{FieldsTranslations(label)} id={props.name}
</label> label={props.label}
<div component={RenderPickList}
id={props.name + "-hint"} datafieldname={datafieldname}
className="govuk-hint govuk-!-font-size-14" picklistData={props.picklistData}
> hint={props.hint}
{props.hasOwnProperty("hint") && errorMsg="Is required"
props.hint != false && validate={[required]}
t(props.hint)}{" "} />
</div>
<Field
name={props.name}
label={props.name}
component={RenderPickList}
datafieldname={datafieldname}
picklistData={props.picklistData}
hint={props.hint}
/>
</div>
); );
} }
@@ -1251,7 +1284,7 @@ export function NumericField(props) {
parentField, parentField,
} = props; } = props;
const required = (value) => { const required = (value) => {
return value || value == 0 ? undefined : "Requirewwwd"; return value || value == 0 ? undefined : "Is required";
}; };
//parentFieldShowOnValue //parentFieldShowOnValue
@@ -1324,7 +1357,7 @@ export function DecimalField(props) {
parentField, parentField,
maxFieldLength, maxFieldLength,
} = props; } = props;
const required = (value) => (value ? undefined : "Required"); const required = (value) => (value ? undefined : "Is required");
//parentFieldShowOnValue //parentFieldShowOnValue
var showIfHasParentShowValue = var showIfHasParentShowValue =