Adding createTableStateInjectionToken

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev committed 2023-06-02 11:15:37 +03:00
1 parent 0f4155672c
commit 2a629ff8b7
1 file changed
+13 -8
+13 -8
View File
@@ -23,17 +23,10 @@ export interface TableComponentProps {
columns?: Column[]; columns?: Column[];
save?: (state: object) => void; save?: (state: object) => void;
load?: (tableId: string) => object; 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 { export interface TableComponent {
Component: React.ComponentType<TableComponentProps>; Component: React.ComponentType<TableComponentProps & { state: any }>;
} }
export interface AddRemoveButtonsProps extends React.HTMLAttributes<any> { export interface AddRemoveButtonsProps extends React.HTMLAttributes<any> {
@@ -47,6 +40,14 @@ export interface AddOrRemoveButtons {
Component: React.ComponentType<AddRemoveButtonsProps>; Component: React.ComponentType<AddRemoveButtonsProps>;
} }
export type CreateTableState = (params: {
dataItems: IComputedValue<any[]>;
headingColumns: object[];
customizeRows?: (row: object) => object;
getRowId?: (dataItem: any) => string | number | symbol;
searchBox?: IComputedValue<string> | IObservableValue<string>;
}) => any;
export const tableComponentInjectionToken = getInjectionToken<TableComponent>({ export const tableComponentInjectionToken = getInjectionToken<TableComponent>({
id: "table-component-injection-token", id: "table-component-injection-token",
}); });
@@ -54,3 +55,7 @@ export const tableComponentInjectionToken = getInjectionToken<TableComponent>({
export const addOrRemoveButtonsInjectionToken = getInjectionToken<AddOrRemoveButtons>({ export const addOrRemoveButtonsInjectionToken = getInjectionToken<AddOrRemoveButtons>({
id: "add-or-remove-buttons-injection-token", id: "add-or-remove-buttons-injection-token",
}); });
export const createTableStateInjectionToken = getInjectionToken<CreateTableState>({
id: "create-table-state-injection-token",
})