@@ -43,11 +43,11 @@ class FormChoice extends React.Component {
43
43
'custom-control-sm' : size === 'sm' ,
44
44
} ) ;
45
45
const inputClasses = cx ( 'custom-control-input' , {
46
- 'is-invalid' : form . errors [ name ] ,
46
+ 'is-invalid' : ! form . touched [ name ] && form . errors [ name ] ,
47
47
} ) ;
48
48
49
49
return (
50
- < Field error = { form . errors [ name ] } info = { info } >
50
+ < Field error = { form . errors [ name ] } touched = { form . touched [ name ] } info = { info } >
51
51
{ legend && < legend className = "form-group-legend" > { legend } </ legend > }
52
52
< div className = "custom-controls-stacked" >
53
53
{ options . map ( option => (
@@ -64,10 +64,11 @@ class FormChoice extends React.Component {
64
64
value = { option . value }
65
65
checked = { field . value === option . value }
66
66
onChange = { ( event ) => {
67
+ if ( ! form . touched [ name ] ) form . setFieldTouched ( name , true ) ;
68
+
67
69
const value = event . target . checked ? option . value : field . value ;
68
- return form . setFieldValue ( name , value ) ;
70
+ form . setFieldValue ( name , value ) ;
69
71
} }
70
- onBlur = { ( ) => form . setFieldTouched ( name , true ) }
71
72
className = { inputClasses }
72
73
/>
73
74
) }
@@ -79,16 +80,17 @@ class FormChoice extends React.Component {
79
80
value = { option . value }
80
81
checked = { field . value ? field . value . indexOf ( option . value ) !== - 1 : false }
81
82
onChange = { ( event ) => {
83
+ if ( ! form . touched [ name ] ) form . setFieldTouched ( name , true ) ;
84
+
82
85
const newValue = field . value ? [ ...field . value ] : [ ] ;
83
86
if ( event . target . checked ) {
84
87
newValue . push ( option . value ) ;
85
88
} else {
86
89
newValue . splice ( newValue . indexOf ( option . value ) , 1 ) ;
87
90
}
88
91
89
- return form . setFieldValue ( name , newValue ) ;
92
+ form . setFieldValue ( name , newValue ) ;
90
93
} }
91
- onBlur = { ( ) => form . setFieldTouched ( `${ name } [${ getIndex ( ) } ]` , true ) }
92
94
className = { inputClasses }
93
95
/>
94
96
) }
0 commit comments