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

Using tableStateInjectable in content.tsx

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2023-06-02 11:29:38 +03:00
parent da3946b986
commit 4fa2cceb46

View File

@ -35,6 +35,7 @@ import type { IsTableColumnHidden } from "../../../features/user-preferences/com
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 type { AddOrRemoveButtons, AddRemoveButtonsProps, TableComponent } from "@k8slens/table"; import type { AddOrRemoveButtons, AddRemoveButtonsProps, TableComponent } from "@k8slens/table";
import { addOrRemoveButtonsInjectionToken, tableComponentInjectionToken } from "@k8slens/table"; import { addOrRemoveButtonsInjectionToken, tableComponentInjectionToken } from "@k8slens/table";
import { tableStateInjectable } from "../table/table-state.injectable";
export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStores extends boolean> { export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStores extends boolean> {
getFilters: () => Filter[]; getFilters: () => Filter[];
@ -82,6 +83,7 @@ interface Dependencies {
isTableColumnHidden: IsTableColumnHidden; isTableColumnHidden: IsTableColumnHidden;
table: TableComponent; table: TableComponent;
addOrRemoveButtons: AddOrRemoveButtons; addOrRemoveButtons: AddOrRemoveButtons;
tableState: object;
} }
@observer @observer
@ -302,7 +304,7 @@ 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, addOrRemoveButtons, table, addOrRemoveButtons, tableState
} = 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);
@ -322,6 +324,7 @@ class NonInjectedItemListLayoutContent<
selectedItemId={selectedItemId} selectedItemId={selectedItemId}
noItems={this.renderNoItems()} noItems={this.renderNoItems()}
className={classNames} className={classNames}
state={tableState}
{...tableProps} {...tableProps}
> >
{this.renderTableHeader()} {this.renderTableHeader()}
@ -391,5 +394,6 @@ export const ItemListLayoutContent = withInjectables<Dependencies, ItemListLayou
isTableColumnHidden: di.inject(isTableColumnHiddenInjectable), isTableColumnHidden: di.inject(isTableColumnHiddenInjectable),
table: di.inject(tableComponentInjectionToken), table: di.inject(tableComponentInjectionToken),
addOrRemoveButtons: di.inject(addOrRemoveButtonsInjectionToken), addOrRemoveButtons: di.inject(addOrRemoveButtonsInjectionToken),
tableState: di.inject(tableStateInjectable, props),
}), }),
}) 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;