add support for ListEmptyComponent, allow undefined data
This commit is contained in:
@@ -38,6 +38,7 @@ function ListImpl<ItemT>(
|
||||
{
|
||||
ListHeaderComponent,
|
||||
ListFooterComponent,
|
||||
ListEmptyComponent,
|
||||
containWeb,
|
||||
contentContainerStyle,
|
||||
data,
|
||||
@@ -92,6 +93,16 @@ function ListImpl<ItemT>(
|
||||
}
|
||||
}
|
||||
|
||||
let emptyComponent: JSX.Element | null = null
|
||||
if (ListEmptyComponent != null) {
|
||||
if (isValidElement(ListEmptyComponent)) {
|
||||
emptyComponent = ListEmptyComponent
|
||||
} else {
|
||||
// @ts-ignore Nah it's fine.
|
||||
emptyComponent = <ListEmptyComponent />
|
||||
}
|
||||
}
|
||||
|
||||
if (headerOffset != null) {
|
||||
style = addStyle(style, {
|
||||
paddingTop: headerOffset,
|
||||
@@ -331,20 +342,22 @@ function ListImpl<ItemT>(
|
||||
/>
|
||||
)}
|
||||
{header}
|
||||
{(data as Array<ItemT>).map((item, index) => {
|
||||
const key = keyExtractor!(item, index)
|
||||
return (
|
||||
<Row<ItemT>
|
||||
key={key}
|
||||
item={item}
|
||||
index={index}
|
||||
renderItem={renderItem}
|
||||
extraData={extraData}
|
||||
onItemSeen={onItemSeen}
|
||||
disableContentVisibility={disableContentVisibility}
|
||||
/>
|
||||
)
|
||||
})}
|
||||
{!data || data.length === 0
|
||||
? emptyComponent
|
||||
: (data as Array<ItemT>)?.map((item, index) => {
|
||||
const key = keyExtractor!(item, index)
|
||||
return (
|
||||
<Row<ItemT>
|
||||
key={key}
|
||||
item={item}
|
||||
index={index}
|
||||
renderItem={renderItem}
|
||||
extraData={extraData}
|
||||
onItemSeen={onItemSeen}
|
||||
disableContentVisibility={disableContentVisibility}
|
||||
/>
|
||||
)
|
||||
})}
|
||||
{onEndReached && (
|
||||
<Visibility
|
||||
root={containWeb ? nativeRef : null}
|
||||
|
||||
Reference in New Issue
Block a user