Reverting table injection tokens (7754)

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev authored and Janne Savolainen committed 2023-05-29 12:00:33 +03:00
1 parent 79e4eaa394
commit 26b8ed66da
17 files changed
+6 -139

No files matched your search

@@ -1,15 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { tableComponentInjectionToken } from "@k8slens/table-tokens";
import { getInjectable } from "@ogre-tools/injectable";
import { Table } from "../../renderer/components/table/table";
const tableComponentInjectable = getInjectable({
id: "table-component",
instantiate: () => ({ Component: Table }),
injectionToken: tableComponentInjectionToken,
});
export default tableComponentInjectable;
@@ -1,14 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getFeature } from "@k8slens/feature-core";
import tableComponentInjectable from "./table-component.injectable";
export const tableFeature = getFeature({
id: "core-table-feature",
register: (di) => {
di.register(tableComponentInjectable);
},
});
@@ -18,9 +18,6 @@ import { Cluster } from "../../../../common/cluster/cluster";
import hostedClusterInjectable from "../../../cluster-frame-context/hosted-cluster.injectable";
import userPreferencesStateInjectable from "../../../../features/user-preferences/common/state.injectable";
import type { DiContainer } from "@ogre-tools/injectable";
import { registerFeature } from "@k8slens/feature-core";
import { runInAction } from "mobx";
import { tableFeature } from "../../../library";
describe("<PodDisruptionBudgets />", () => {
let di: DiContainer;
@@ -72,10 +69,6 @@ describe("<PodDisruptionBudgets />", () => {
}),
} as any,
}));
runInAction(() => {
registerFeature(di, tableFeature);
});
});
describe("PDB with minAvailable 0", () => {
@@ -11,14 +11,14 @@ import { computed, makeObservable } from "mobx";
import { Observer, observer } from "mobx-react";
import type { ConfirmDialogParams } from "../confirm-dialog";
import type { TableProps, TableRowProps, TableSortCallbacks } from "../table";
import { TableCell, TableHead, TableRow } from "../table";
import { Table, TableCell, TableHead, TableRow } from "../table";
import type { IClassName, StrictReactNode } 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 { Spinner } from "../spinner";
import type { GeneralKubeObjectListLayoutColumn, ItemObject, TableCellProps } from "@k8slens/list-layout";
import type { ItemObject, TableCellProps } from "@k8slens/list-layout";
import type { Filter, PageFiltersStore } from "./page-filters/store";
import type { LensTheme } from "../../themes/lens-theme";
import { MenuActions } from "../menu/menu-actions";
@@ -35,8 +35,6 @@ import type { ToggleTableColumnVisibility } from "../../../features/user-prefere
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 isTableColumnHiddenInjectable from "../../../features/user-preferences/common/is-table-column-hidden.injectable";
import type { TableComponent } from "@k8slens/table-tokens";
import { tableComponentInjectionToken } from "@k8slens/table-tokens";
export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStores extends boolean> {
getFilters: () => Filter[];
@@ -56,7 +54,6 @@ export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStor
customizeTableRowProps?: (item: Item) => Partial<TableRowProps<Item>>;
addRemoveButtons?: Partial<AddRemoveButtonsProps>;
virtual?: boolean;
columns?: GeneralKubeObjectListLayoutColumn[];
// item details view
hasDetailsView?: boolean;
@@ -82,7 +79,6 @@ interface Dependencies {
openConfirmDialog: OpenConfirmDialog;
toggleTableColumnVisibility: ToggleTableColumnVisibility;
isTableColumnHidden: IsTableColumnHidden;
table: TableComponent;
}
@observer
@@ -303,7 +299,6 @@ class NonInjectedItemListLayoutContent<
const {
store, hasDetailsView, addRemoveButtons = {}, virtual, sortingCallbacks,
detailsItem, className, tableProps = {}, tableId, getItems, activeTheme,
table,
} = this.props;
const selectedItemId = detailsItem && detailsItem.getId();
const classNames = cssNames(className, "box", "grow", activeTheme.get().type);
@@ -312,9 +307,8 @@ class NonInjectedItemListLayoutContent<
return (
<div className="items box grow flex column">
<table.Component
<Table
tableId={tableId}
columns={this.props.columns}
virtual={virtual}
selectable={hasDetailsView}
sortable={sortingCallbacks}
@@ -328,7 +322,7 @@ class NonInjectedItemListLayoutContent<
>
{this.renderTableHeader()}
{this.renderItems()}
</table.Component>
</Table>
<Observer>
{() => (
@@ -391,6 +385,5 @@ export const ItemListLayoutContent = withInjectables<Dependencies, ItemListLayou
openConfirmDialog: di.inject(openConfirmDialogInjectable),
toggleTableColumnVisibility: di.inject(toggleTableColumnVisibilityInjectable),
isTableColumnHidden: di.inject(isTableColumnHiddenInjectable),
table: di.inject(tableComponentInjectionToken),
}),
}) as <Item extends ItemObject, PreLoadStores extends boolean>(props: ItemListLayoutContentProps<Item, PreLoadStores>) => React.ReactElement;
@@ -13,9 +13,7 @@ import type { TableProps, TableRowProps, TableSortCallbacks } from "../table";
import type { IClassName, StrictReactNode, SingleOrMany } from "@k8slens/utilities";
import { cssNames, noop } from "@k8slens/utilities";
import type { AddRemoveButtonsProps } from "../add-remove-buttons";
import type { ItemObject, TableCellProps,
GeneralKubeObjectListLayoutColumn,
} from "@k8slens/list-layout";
import type { ItemObject, TableCellProps } from "@k8slens/list-layout";
import type { SearchInputUrlProps } from "../input";
import type { PageFiltersStore } from "./page-filters/store";
import { FilterType } from "./page-filters/store";
@@ -100,7 +98,6 @@ export type ItemListLayoutProps<Item extends ItemObject, PreLoadStores extends b
headerClassName?: IClassName;
renderHeaderTitle?: RenderHeaderTitle<Item, PreLoadStores>;
customizeHeader?: HeaderCustomizer | HeaderCustomizer[];
columns?: GeneralKubeObjectListLayoutColumn[];
// items list configuration
isReady?: boolean; // show loading indicator while not ready
@@ -307,7 +304,6 @@ class NonInjectedItemListLayout<I extends ItemObject, PreLoadStores extends bool
/>
<ItemListLayoutContent<I, PreLoadStores>
columns={this.props.columns}
getItems={() => this.items}
getFilters={() => this.filters}
tableId={this.props.tableId}
@@ -23,9 +23,6 @@ import type { PodStore } from "../workloads-pods/store";
import { Cluster } from "../../../common/cluster/cluster";
import isTableColumnHiddenInjectable from "../../../features/user-preferences/common/is-table-column-hidden.injectable";
import { podListLayoutColumnInjectionToken } from "@k8slens/list-layout";
import { registerFeature } from "@k8slens/feature-core";
import { runInAction } from "mobx";
import { tableFeature } from "../../library";
describe("kube-object-list-layout", () => {
let di: DiContainer;
@@ -57,10 +54,6 @@ describe("kube-object-list-layout", () => {
get: () => ({}),
}));
runInAction(() => {
registerFeature(di, tableFeature);
});
podStore = di.inject(podStoreInjectable);
});
@@ -42,7 +42,7 @@ export interface KubeObjectListLayoutProps<
// eslint-disable-next-line unused-imports/no-unused-vars-ts, @typescript-eslint/no-unused-vars
A extends KubeApi<K, D>,
D extends KubeJsonApiDataFor<K>,
> extends Omit<ItemListLayoutProps<K, false>, "getItems" | "dependentStores" | "preloadStores" | "columns"> {
> extends Omit<ItemListLayoutProps<K, false>, "getItems" | "dependentStores" | "preloadStores"> {
items?: K[];
getItems?: () => K[];
store: KubeItemListStore<K>;
@@ -193,7 +193,6 @@ class NonInjectedKubeObjectListLayout<
getItems={() => this.props.items || store.contextItems}
preloadStores={false} // loading handled in kubeWatchApi.subscribeStores()
detailsItem={this.selectedItem}
columns={targetColumns as GeneralKubeObjectListLayoutColumn[]}
customizeHeader={[
({ filters, searchProps, info, ...headerPlaceHolders }) => ({
filters: (
@@ -72,7 +72,6 @@ import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
import { getMessageBridgeFake } from "@k8slens/messaging-fake-bridge";
import { historyInjectionToken } from "@k8slens/routing";
import writeJsonSyncInjectable from "../../../common/fs/write-json-sync.injectable";
import { tableFeature } from "../../library";
type MainDiCallback = (container: { mainDi: DiContainer }) => void | Promise<void>;
type WindowDiCallback = (container: { windowDi: DiContainer }) => void | Promise<void>;
@@ -257,7 +256,6 @@ export const getApplicationBuilder = () => {
registerFeature(
windowDi,
applicationFeature,
tableFeature,
);
windowDi.register(rendererExtensionsStateInjectable);
-1
View File
@@ -22,4 +22,3 @@ export * as ReactRouterDom from "react-router-dom";
export * as rendererExtensionApi from "../extensions/renderer-api";
export * as commonExtensionApi from "../extensions/common-api";
export { metricsFeature } from "../features/metrics/metrics-feature";
export { tableFeature } from "../features/table/table-feature";