@@ -42,6 +42,7 @@ enum MultiInputFieldAction {
42
42
EDIT_OPTIONS_HIDE_ROW_TITLE = "EDIT_OPTIONS_HIDE_ROW_TITLE" ,
43
43
EDIT_OPTIONS_SHOW_TABLE_TITLE = "EDIT_OPTIONS_SHOW_TABLE_TITLE" ,
44
44
EDIT_OPTIONS_SHOW_TABLE_ITEM_NAME = "EDIT_OPTIONS_SHOW_TABLE_ITEM_NAME" ,
45
+ EDIT_MAX_MULTI_INPUT_FIELD_ROWS = "EDIT_MAX_MULTI_INPUT_FIELD_ROWS" ,
45
46
}
46
47
47
48
export const MultiInputFieldEdit : any = ( { context = AdapterComponentContext } ) => {
@@ -92,6 +93,9 @@ export const MultiInputFieldEdit: any = ({context = AdapterComponentContext}) =>
92
93
const [ tableTitles , setTableTitles ] = useState < string [ ] > ( options . columnTitles ? options . columnTitles : [ ] ) ;
93
94
94
95
const [ showEditor , setShowEditor ] = useState ( false ) ;
96
+
97
+ const [ maxRows , setMaxRows ] = useState < string > ( selectedComponent . options ?. maxMultiInputFieldRows ?. toString ( ) || "" ) ;
98
+
95
99
const subComponentRef = useRef ( null ) ;
96
100
97
101
const toggleShowEditor = ( ) => {
@@ -622,6 +626,14 @@ export const MultiInputFieldEdit: any = ({context = AdapterComponentContext}) =>
622
626
}
623
627
} )
624
628
}
629
+ if ( e . type === MultiInputFieldAction . EDIT_MAX_MULTI_INPUT_FIELD_ROWS ) {
630
+ setMaxRows ( e . payload ) ;
631
+ const numValue = parseInt ( e . payload ) ;
632
+ if ( ! selectedComponent . options ) {
633
+ selectedComponent . options = { } ;
634
+ }
635
+ selectedComponent . options . maxMultiInputFieldRows = isNaN ( numValue ) || numValue <= 0 ? undefined : numValue ;
636
+ }
625
637
}
626
638
627
639
const renderSelectedSubComponentConfigEdit = ( ) => {
@@ -932,6 +944,26 @@ export const MultiInputFieldEdit: any = ({context = AdapterComponentContext}) =>
932
944
children : [ "Table Item Name" ]
933
945
} } />
934
946
</ div >
947
+
948
+ < div className = "govuk-form-group" data-test-id = "max-multi-input-field-rows-wrapper" >
949
+ < Input id = "max-multi-input-field-rows" name = "maxMultiInputFieldRows"
950
+ onChange = { ( e ) =>
951
+ handleData ( {
952
+ type : MultiInputFieldAction . EDIT_MAX_MULTI_INPUT_FIELD_ROWS ,
953
+ payload : e . target . value ,
954
+ } )
955
+ }
956
+ value = { maxRows }
957
+ type = "number"
958
+ label = { {
959
+ className : "govuk-label--s" ,
960
+ children : [ "Maximum number of rows" ]
961
+ } }
962
+ hint = { {
963
+ children : [ "Set the maximum number of rows users can add. Leave empty for unlimited rows." ]
964
+ } } />
965
+ </ div >
966
+
935
967
< div className = "govuk-label govuk-label--s" > ----- Sub Components list -----</ div >
936
968
< div className = "govuk-form-group" >
937
969
< label className = "govuk-label govuk-label--s" htmlFor = "select-field-types" >
0 commit comments