@dccs/react-datagrid-mui
Version:
A light datagrid build upon react-table-plain for React in a Material-UI theme.
41 lines (40 loc) • 1.56 kB
TypeScript
import * as React from "react";
import { SortDirection } from "@dccs/react-table-mui";
import { OnLoadData } from ".";
import { IParams } from "./IParams";
import { PropType } from "@dccs/react-table-mui/lib/IColDef";
export interface IDataState<T extends object, F extends object> extends IParams<T, F> {
setTotal: (total: number) => void;
setPage: (page: number) => void;
setRowsPerPage: (rpp: number) => void;
setOrderBy: (orderBy: PropType<T>) => void;
setSort: (sort: SortDirection | undefined) => void;
setFilter: (filter: F | undefined) => void;
setFilterProp: (key: keyof F, value: any) => void;
allowLoad: boolean;
setAllowLoad: React.Dispatch<React.SetStateAction<boolean>>;
error: boolean;
loading: boolean;
data: T[];
reload: () => void;
handleChangePage(p: number): void;
handleChangeRowsPerPage(rows: number): void;
handleChangeOrderBy(ob: PropType<T>): void;
handleChangeFilter(ob: PropType<T>, value: any): void;
load(): void;
}
export interface IPersistState {
store: "localStorage" | "sessionStorage";
uniqueID: string;
}
export interface IUseDataStateProps<T extends object, F extends object> {
onLoadData: OnLoadData<T, F>;
initialRowsPerPage?: number;
initialOrderBy?: PropType<T>;
initialSort?: SortDirection;
initialLoad?: boolean;
initialPage?: number;
initialFilter?: F;
persistState?: IPersistState;
}
export declare function useDataState<T extends object, F extends object>(props: IUseDataStateProps<T, F>): IDataState<T, F>;