1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

fixed non-virtual list row rendering (#4983)

This commit is contained in:
Jim Ehrismann 2022-03-10 09:05:05 -05:00 committed by GitHub
parent 8b6f8e5dc3
commit 98235d17ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -69,28 +69,24 @@ export class ItemListLayoutContent<I extends ItemObject> extends React.Component
} }
@boundMethod @boundMethod
getRow(uid: string) { renderRow(item: I) {
return ( return this.getTableRow(item);
<div key={uid}> }
<Observer>
{() => { getTableRow(item: I) {
const { const {
isSelectable, renderTableHeader, renderTableContents, renderItemMenu, isSelectable, renderTableHeader, renderTableContents, renderItemMenu,
store, hasDetailsView, onDetails, store, hasDetailsView, onDetails,
copyClassNameFromHeadCells, customizeTableRowProps, detailsItem, copyClassNameFromHeadCells, customizeTableRowProps, detailsItem,
} = this.props; } = this.props;
const { isSelected } = store; const { isSelected } = store;
const item = this.props.getItems().find(item => item.getId() == uid);
if (!item) return null;
const itemId = item.getId();
return ( return (
<TableRow <TableRow
nowrap nowrap
searchItem={item} searchItem={item}
sortItem={item} sortItem={item}
selected={detailsItem && detailsItem.getId() === itemId} selected={detailsItem && detailsItem.getId() === item.getId()}
onClick={hasDetailsView ? prevDefault(() => onDetails(item)) : undefined} onClick={hasDetailsView ? prevDefault(() => onDetails(item)) : undefined}
{...customizeTableRowProps(item)} {...customizeTableRowProps(item)}
> >
@ -129,6 +125,19 @@ export class ItemListLayoutContent<I extends ItemObject> extends React.Component
)} )}
</TableRow> </TableRow>
); );
}
@boundMethod
getRow(uid: string) {
return (
<div key={uid}>
<Observer>
{() => {
const item = this.props.getItems().find(item => item.getId() === uid);
if (!item) return null;
return this.getTableRow(item);
}} }}
</Observer> </Observer>
</div> </div>
@ -248,6 +257,7 @@ export class ItemListLayoutContent<I extends ItemObject> extends React.Component
selectable={hasDetailsView} selectable={hasDetailsView}
sortable={sortingCallbacks} sortable={sortingCallbacks}
getTableRow={this.getRow} getTableRow={this.getRow}
renderRow={virtual ? undefined : this.renderRow}
items={items} items={items}
selectedItemId={selectedItemId} selectedItemId={selectedItemId}
noItems={this.renderNoItems()} noItems={this.renderNoItems()}