mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Render external table if found
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
29a52920b8
commit
7fead2bb31
@ -35,6 +35,7 @@ import type { ToggleTableColumnVisibility } from "../../../features/user-prefere
|
|||||||
import toggleTableColumnVisibilityInjectable from "../../../features/user-preferences/common/toggle-table-column-visibility.injectable";
|
import toggleTableColumnVisibilityInjectable from "../../../features/user-preferences/common/toggle-table-column-visibility.injectable";
|
||||||
import type { IsTableColumnHidden } from "../../../features/user-preferences/common/is-table-column-hidden.injectable";
|
import type { IsTableColumnHidden } from "../../../features/user-preferences/common/is-table-column-hidden.injectable";
|
||||||
import isTableColumnHiddenInjectable from "../../../features/user-preferences/common/is-table-column-hidden.injectable";
|
import isTableColumnHiddenInjectable from "../../../features/user-preferences/common/is-table-column-hidden.injectable";
|
||||||
|
import { TableComponent, TableDataContext, TableDataContextValue, tableComponentInjectionToken } from "@k8slens/table-tokens";
|
||||||
|
|
||||||
export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStores extends boolean> {
|
export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStores extends boolean> {
|
||||||
getFilters: () => Filter[];
|
getFilters: () => Filter[];
|
||||||
@ -79,6 +80,7 @@ interface Dependencies {
|
|||||||
openConfirmDialog: OpenConfirmDialog;
|
openConfirmDialog: OpenConfirmDialog;
|
||||||
toggleTableColumnVisibility: ToggleTableColumnVisibility;
|
toggleTableColumnVisibility: ToggleTableColumnVisibility;
|
||||||
isTableColumnHidden: IsTableColumnHidden;
|
isTableColumnHidden: IsTableColumnHidden;
|
||||||
|
table?: TableComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
@ -86,6 +88,9 @@ class NonInjectedItemListLayoutContent<
|
|||||||
Item extends ItemObject,
|
Item extends ItemObject,
|
||||||
PreLoadStores extends boolean,
|
PreLoadStores extends boolean,
|
||||||
> extends React.Component<ItemListLayoutContentProps<Item, PreLoadStores> & Dependencies> {
|
> extends React.Component<ItemListLayoutContentProps<Item, PreLoadStores> & Dependencies> {
|
||||||
|
static contextType = TableDataContext;
|
||||||
|
declare context: TableDataContextValue;
|
||||||
|
|
||||||
constructor(props: ItemListLayoutContentProps<Item, PreLoadStores> & Dependencies) {
|
constructor(props: ItemListLayoutContentProps<Item, PreLoadStores> & Dependencies) {
|
||||||
super(props);
|
super(props);
|
||||||
makeObservable(this);
|
makeObservable(this);
|
||||||
@ -299,12 +304,17 @@ class NonInjectedItemListLayoutContent<
|
|||||||
const {
|
const {
|
||||||
store, hasDetailsView, addRemoveButtons = {}, virtual, sortingCallbacks,
|
store, hasDetailsView, addRemoveButtons = {}, virtual, sortingCallbacks,
|
||||||
detailsItem, className, tableProps = {}, tableId, getItems, activeTheme,
|
detailsItem, className, tableProps = {}, tableId, getItems, activeTheme,
|
||||||
|
table,
|
||||||
} = this.props;
|
} = this.props;
|
||||||
const selectedItemId = detailsItem && detailsItem.getId();
|
const selectedItemId = detailsItem && detailsItem.getId();
|
||||||
const classNames = cssNames(className, "box", "grow", activeTheme.get().type);
|
const classNames = cssNames(className, "box", "grow", activeTheme.get().type);
|
||||||
const items = getItems();
|
const items = getItems();
|
||||||
const selectedItems = store.pickOnlySelected(items);
|
const selectedItems = store.pickOnlySelected(items);
|
||||||
|
|
||||||
|
if (table) {
|
||||||
|
return <table.Component tableId={tableId} columns={this.context.columns} save={() => null} load={() => noop} />
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="items box grow flex column">
|
<div className="items box grow flex column">
|
||||||
<Table
|
<Table
|
||||||
@ -385,5 +395,6 @@ export const ItemListLayoutContent = withInjectables<Dependencies, ItemListLayou
|
|||||||
openConfirmDialog: di.inject(openConfirmDialogInjectable),
|
openConfirmDialog: di.inject(openConfirmDialogInjectable),
|
||||||
toggleTableColumnVisibility: di.inject(toggleTableColumnVisibilityInjectable),
|
toggleTableColumnVisibility: di.inject(toggleTableColumnVisibilityInjectable),
|
||||||
isTableColumnHidden: di.inject(isTableColumnHiddenInjectable),
|
isTableColumnHidden: di.inject(isTableColumnHiddenInjectable),
|
||||||
|
table: di.inject(tableComponentInjectionToken),
|
||||||
}),
|
}),
|
||||||
}) as <Item extends ItemObject, PreLoadStores extends boolean>(props: ItemListLayoutContentProps<Item, PreLoadStores>) => React.ReactElement;
|
}) as <Item extends ItemObject, PreLoadStores extends boolean>(props: ItemListLayoutContentProps<Item, PreLoadStores>) => React.ReactElement;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user