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:
parent
f9978f3b01
commit
c48b88eed0
@ -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;
|
||||||
|
|||||||
@ -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",
|
||||||
});
|
});
|
||||||
Loading…
Reference in New Issue
Block a user