mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Add table and add-remove buttons injection tokens
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
9a2d585e62
commit
007a0174f0
56
packages/table/index.ts
Normal file
56
packages/table/index.ts
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import type { KubeObject } from "@k8slens/kube-object";
|
||||||
|
import type {
|
||||||
|
BaseKubeObjectListLayoutColumn,
|
||||||
|
GeneralKubeObjectListLayoutColumn,
|
||||||
|
SpecificKubeListLayoutColumn,
|
||||||
|
} from "@k8slens/list-layout";
|
||||||
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||||
|
import type { IComputedValue, IObservableValue } from "mobx";
|
||||||
|
|
||||||
|
type Column = (
|
||||||
|
| BaseKubeObjectListLayoutColumn<KubeObject>
|
||||||
|
| SpecificKubeListLayoutColumn<KubeObject>
|
||||||
|
| GeneralKubeObjectListLayoutColumn
|
||||||
|
);
|
||||||
|
|
||||||
|
export interface TableComponentProps {
|
||||||
|
tableId?: string;
|
||||||
|
columns?: Column[];
|
||||||
|
save?: (state: object) => void;
|
||||||
|
load?: (tableId: string) => object;
|
||||||
|
initialState?: {
|
||||||
|
dataItems: IComputedValue<any[]>;
|
||||||
|
headingColumns: object[];
|
||||||
|
customizeRows?: (row: object) => object;
|
||||||
|
getRowId?: (dataItem: any) => string | number | symbol;
|
||||||
|
searchBox?: IComputedValue<string> | IObservableValue<string>;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TableComponent {
|
||||||
|
Component: React.ComponentType<TableComponentProps>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AddRemoveButtonsProps extends React.HTMLAttributes<any> {
|
||||||
|
onAdd?: () => void;
|
||||||
|
onRemove?: () => void;
|
||||||
|
addTooltip?: React.ReactNode;
|
||||||
|
removeTooltip?: React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AddOrRemoveButtons {
|
||||||
|
Component: React.ComponentType<AddRemoveButtonsProps>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const tableComponentInjectionToken = getInjectionToken<TableComponent>({
|
||||||
|
id: "table-component-injection-token",
|
||||||
|
});
|
||||||
|
|
||||||
|
export const addOrRemoveButtonsInjectionToken = getInjectionToken<TableComponent>({
|
||||||
|
id: "add-or-remove-buttons-injection-token",
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user