@@ -315,6 +315,8 @@ export function getArrayFormRow(args) {
315315 editable = { args . editable }
316316 onEdit = { args . onKeyEdit }
317317 key = { 'row_group_' + name }
318+ collapsible = { data . length > 0 }
319+ childrenType = "rows"
318320 >
319321 { rowError && rowError . map ( ( error , i ) => < div className = "rjf-error-text" key = { i } > { error } </ div > ) }
320322 { rows }
@@ -338,45 +340,38 @@ export function getArrayFormRow(args) {
338340 if ( typeof groupError === 'string' )
339341 groupError = [ groupError ] ;
340342
341- let groupTitle = schema . title ? < GroupTitle editable = { args . editable } onEdit = { args . onKeyEdit } > { schema . title } </ GroupTitle > : null ;
342- let groupDescription = schema . description ? < GroupDescription > { schema . description } </ GroupDescription > : null ;
343-
344343 groups = (
345344 < div key = { 'group_' + name } className = "rjf-form-group-wrapper" >
346345 { args . parentType === 'object' && args . removable &&
347346 < FormRowControls
348347 onRemove = { ( e ) => onRemove ( name ) }
349348 />
350349 }
351- < div className = "rjf-form-group" >
352- < div className = { level > 0 ? "rjf-form-group-inner" : "" } >
353- { groupTitle }
354- { groupDescription }
355- { groupError && groupError . map ( ( error , i ) => < div className = "rjf-error-text" key = { i } > { error } </ div > ) }
356- { groups . map ( ( i , index ) => (
357- < div className = "rjf-form-group-wrapper" key = { 'group_wrapper_' + name + '_' + index } >
358- < FormRowControls
359- onRemove = { removable ? ( e ) => onRemove ( joinCoords ( name , index ) ) : null }
360- onMoveUp = { index > 0 && ! isReadonly ? ( e ) => onMove ( joinCoords ( name , index ) , joinCoords ( name , index - 1 ) ) : null }
361- onMoveDown = { index < groups . length - 1 && ! isReadonly ? ( e ) => onMove ( joinCoords ( name , index ) , joinCoords ( name , index + 1 ) ) : null }
362- />
363- { i }
364- </ div >
365- )
366- ) }
367- { addable &&
368- < Button
369- className = "add"
370- onClick = { ( e ) => onAdd ( getBlankData ( schema . items , args . getRef ) , coords ) }
371- title = "Add new item"
372- >
373- Add item
374- </ Button >
375- }
376- </ div >
377- </ div >
350+ < FormGroup
351+ level = { level }
352+ schema = { schema }
353+ addable = { addable }
354+ onAdd = { ( ) => onAdd ( getBlankData ( schema . items , args . getRef ) , coords ) }
355+ editable = { args . editable }
356+ onEdit = { args . onKeyEdit }
357+ collapsible = { data . length > 0 }
358+ childrenType = "groups"
359+ >
360+ { groupError && groupError . map ( ( error , i ) => < div className = "rjf-error-text" key = { i } > { error } </ div > ) }
361+ { groups . map ( ( i , index ) => (
362+ < div className = "rjf-form-group-wrapper" key = { 'group_wrapper_' + name + '_' + index } >
363+ < FormRowControls
364+ onRemove = { removable ? ( e ) => onRemove ( joinCoords ( name , index ) ) : null }
365+ onMoveUp = { index > 0 && ! isReadonly ? ( e ) => onMove ( joinCoords ( name , index ) , joinCoords ( name , index - 1 ) ) : null }
366+ onMoveDown = { index < groups . length - 1 && ! isReadonly ? ( e ) => onMove ( joinCoords ( name , index ) , joinCoords ( name , index + 1 ) ) : null }
367+ />
368+ { i }
369+ </ div >
370+ )
371+ ) }
372+ </ FormGroup >
378373 </ div >
379- )
374+ ) ;
380375 }
381376
382377 return [ ...rows , ...groups ] ;
@@ -504,6 +499,8 @@ export function getObjectFormRow(args) {
504499 editable = { args . editable }
505500 onEdit = { args . onKeyEdit }
506501 key = { 'row_group_' + name }
502+ collapsible = { keys . length > 0 }
503+ childrenType = "rows"
507504 >
508505 { groupError && groupError . map ( ( error , i ) => < div className = "rjf-error-text" key = { i } > { error } </ div > ) }
509506 { rows }
0 commit comments