@@ -208,6 +208,7 @@ const List: List = React.forwardRef(function List<TDataItem>(
208
208
groupBy,
209
209
elementRef,
210
210
optionComponent : Option = ListOption ,
211
+ renderList,
211
212
// onKeyDown,
212
213
...props
213
214
} : ListProps < TDataItem > ,
@@ -263,7 +264,7 @@ const List: List = React.forwardRef(function List<TDataItem>(
263
264
)
264
265
}
265
266
266
- const children = groupedData
267
+ const items = groupedData
267
268
? groupedData . map ( ( [ group , items ] , idx ) => (
268
269
< div role = "group" key = { `group_${ idx } ` } >
269
270
< ListOptionGroup >
@@ -274,23 +275,22 @@ const List: List = React.forwardRef(function List<TDataItem>(
274
275
) )
275
276
: data . map ( renderOption )
276
277
277
- return (
278
- < div
279
- id = { id }
280
- tabIndex = { 0 }
281
- ref = { divRef }
282
- { ...elementProps }
283
- aria-multiselectable = { ! ! multiple }
284
- className = { cn ( className , 'rw-list' ) }
285
- role = { elementProps . role ?? 'listbox' }
286
- >
287
- { React . Children . count ( children ) ? (
288
- children
289
- ) : (
290
- < div className = "rw-list-empty" > { emptyList ( ) } </ div >
291
- ) }
292
- </ div >
293
- )
278
+ const rootProps = {
279
+ id,
280
+ tabIndex : 0 ,
281
+ ref : divRef ,
282
+ ...elementProps ,
283
+ 'aria-multiselectable' : ! ! multiple ,
284
+ className : cn ( className , 'rw-list' ) ,
285
+ role : elementProps . role ?? 'listbox' ,
286
+ children : React . Children . count ( items ) ? (
287
+ items
288
+ ) : (
289
+ < div className = "rw-list-empty" > { emptyList ( ) } </ div >
290
+ ) ,
291
+ }
292
+
293
+ return renderList ? renderList ( rootProps ) : < div { ...rootProps } />
294
294
} )
295
295
296
296
List . displayName = 'List'
0 commit comments