@@ -42,6 +42,10 @@ const FormFieldRenderer = (props) => {
4242 if ( ! fieldData . options ) {
4343 return null ;
4444 }
45+ const optionsArray = Array . isArray ( fieldData . options )
46+ ? fieldData . options
47+ : Object . entries ( fieldData . options ) ;
48+
4549 formField = (
4650 < Form . Group controlId = { fieldData . name } isInvalid = { ! ! ( isRequired && errorMessage ) } >
4751 < Form . Control
@@ -56,14 +60,14 @@ const FormFieldRenderer = (props) => {
5660 onBlur = { handleOnBlur }
5761 onFocus = { handleFocus }
5862 >
59- < option key = "default" value = "" > { fieldData . label } </ option >
60- { fieldData . options . map ( option => (
61- < option className = "data-hj-suppress" key = { option [ 0 ] } value = { option [ 0 ] } > { option [ 1 ] } </ option >
62- ) ) }
63- </ Form . Control >
64- { helpTextFeedback }
65- { errorFeedback }
66- </ Form . Group >
63+ < option key = "default" value = "" > { fieldData . label } </ option >
64+ { optionsArray . map ( option => (
65+ < option className = "data-hj-suppress" key = { option [ 0 ] } value = { option [ 0 ] } > { option [ 1 ] } </ option >
66+ ) ) }
67+ </ Form . Control >
68+ { helpTextFeedback }
69+ { errorFeedback }
70+ </ Form . Group >
6771 ) ;
6872 break ;
6973 }
@@ -113,22 +117,22 @@ const FormFieldRenderer = (props) => {
113117 case 'checkbox' : {
114118 formField = (
115119 < Form . Group isInvalid = { ! ! ( isRequired && errorMessage ) } >
116- < Form . Checkbox
117- className = { className }
118- id = { fieldData . name }
119- checked = { ! ! value }
120- name = { fieldData . name }
121- value = { value }
122- aria-invalid = { isRequired && Boolean ( errorMessage ) }
123- onChange = { ( e ) => onChangeHandler ( e ) }
124- onBlur = { handleOnBlur }
125- onFocus = { handleFocus }
126- >
127- { fieldData . label }
128- </ Form . Checkbox >
129- { helpTextFeedback }
130- { errorFeedback }
131- </ Form . Group >
120+ < Form . Checkbox
121+ className = { className }
122+ id = { fieldData . name }
123+ checked = { ! ! value }
124+ name = { fieldData . name }
125+ value = { value }
126+ aria-invalid = { isRequired && Boolean ( errorMessage ) }
127+ onChange = { ( e ) => onChangeHandler ( e ) }
128+ onBlur = { handleOnBlur }
129+ onFocus = { handleFocus }
130+ >
131+ { fieldData . label }
132+ </ Form . Checkbox >
133+ { helpTextFeedback }
134+ { errorFeedback }
135+ </ Form . Group >
132136 ) ;
133137 break ;
134138 }
@@ -159,7 +163,10 @@ FormFieldRenderer.propTypes = {
159163 max_length : PropTypes . number ,
160164 min_length : PropTypes . number ,
161165 } ) ,
162- options : PropTypes . arrayOf ( PropTypes . arrayOf ( PropTypes . string ) ) ,
166+ options : PropTypes . oneOfType ( [
167+ PropTypes . arrayOf ( PropTypes . arrayOf ( PropTypes . string ) ) ,
168+ PropTypes . objectOf ( PropTypes . string ) ,
169+ ] ) ,
163170 } ) . isRequired ,
164171 onChangeHandler : PropTypes . func . isRequired ,
165172 handleBlur : PropTypes . func ,
0 commit comments