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

Using AddOrRemoveButtons component from injection token

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2023-06-01 11:30:58 +03:00
parent f9978f3b01
commit c48b88eed0
2 changed files with 6 additions and 6 deletions

View File

@ -14,8 +14,6 @@ import type { TableProps, TableRowProps, TableSortCallbacks } from "../table";
import { TableCell, TableHead, TableRow } from "../table"; import { TableCell, TableHead, TableRow } from "../table";
import type { IClassName, StrictReactNode } from "@k8slens/utilities"; import type { IClassName, StrictReactNode } from "@k8slens/utilities";
import { cssNames, isDefined, isReactNode, noop, prevDefault, stopPropagation } from "@k8slens/utilities"; import { cssNames, isDefined, isReactNode, noop, prevDefault, stopPropagation } from "@k8slens/utilities";
import type { AddRemoveButtonsProps } from "../add-remove-buttons";
import { AddRemoveButtons } from "../add-remove-buttons";
import { NoItems } from "../no-items"; import { NoItems } from "../no-items";
import { Spinner } from "../spinner"; import { Spinner } from "../spinner";
import type { GeneralKubeObjectListLayoutColumn, ItemObject, TableCellProps } from "@k8slens/list-layout"; import type { GeneralKubeObjectListLayoutColumn, ItemObject, TableCellProps } from "@k8slens/list-layout";
@ -35,7 +33,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 type { TableComponent } from "@k8slens/table"; import { AddOrRemoveButtons, AddRemoveButtonsProps, TableComponent, addOrRemoveButtonsInjectionToken } from "@k8slens/table";
import { tableComponentInjectionToken } from "@k8slens/table"; import { tableComponentInjectionToken } from "@k8slens/table";
export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStores extends boolean> { export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStores extends boolean> {
@ -83,6 +81,7 @@ interface Dependencies {
toggleTableColumnVisibility: ToggleTableColumnVisibility; toggleTableColumnVisibility: ToggleTableColumnVisibility;
isTableColumnHidden: IsTableColumnHidden; isTableColumnHidden: IsTableColumnHidden;
table: TableComponent; table: TableComponent;
addOrRemoveButtons: AddOrRemoveButtons;
} }
@observer @observer
@ -303,7 +302,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, table, addOrRemoveButtons
} = 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);
@ -331,7 +330,7 @@ class NonInjectedItemListLayoutContent<
<Observer> <Observer>
{() => ( {() => (
<AddRemoveButtons <addOrRemoveButtons.Component
onRemove={ onRemove={
(store.removeItems || store.removeSelectedItems) && selectedItems.length > 0 (store.removeItems || store.removeSelectedItems) && selectedItems.length > 0
? () => this.removeItemsDialog(selectedItems) ? () => this.removeItemsDialog(selectedItems)
@ -391,5 +390,6 @@ export const ItemListLayoutContent = withInjectables<Dependencies, ItemListLayou
toggleTableColumnVisibility: di.inject(toggleTableColumnVisibilityInjectable), toggleTableColumnVisibility: di.inject(toggleTableColumnVisibilityInjectable),
isTableColumnHidden: di.inject(isTableColumnHiddenInjectable), isTableColumnHidden: di.inject(isTableColumnHiddenInjectable),
table: di.inject(tableComponentInjectionToken), table: di.inject(tableComponentInjectionToken),
addOrRemoveButtons: di.inject(addOrRemoveButtonsInjectionToken),
}), }),
}) 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;

View File

@ -51,6 +51,6 @@ export const tableComponentInjectionToken = getInjectionToken<TableComponent>({
id: "table-component-injection-token", id: "table-component-injection-token",
}); });
export const addOrRemoveButtonsInjectionToken = getInjectionToken<TableComponent>({ export const addOrRemoveButtonsInjectionToken = getInjectionToken<AddOrRemoveButtons>({
id: "add-or-remove-buttons-injection-token", id: "add-or-remove-buttons-injection-token",
}); });