@dccs/react-datagrid-mui
Version:
A light datagrid build upon react-table-plain for React in a Material-UI theme.
43 lines (38 loc) • 1.47 kB
text/typescript
import { ITableMuiProps } from "@dccs/react-table-mui/lib/Props";
import { IDataState, IUseDataStateProps } from ".";
import { IDataGridTexts } from "./IDataGridTexts";
import { IParams } from "./IParams";
// Take everything from the base TableMuiProps and modify it a little bit.
export type IDataGridProps<T extends object, F extends object> = Omit<ITableMuiProps<T, F>, "data"> & {
texts?: IDataGridTexts;
disablePaging?: boolean;
renderLoading?: () => React.ReactElement;
renderError?: (
load: () => void,
errorText?: string,
reloadText?: string
) => React.ReactElement;
renderPaging?: (props: IRenderPagingProps<T, F>) => React.ReactElement;
}
export interface IDataGridWithExternalStateProps<T extends object, F extends object> extends IDataGridProps<T, F> {
state?: IDataState<T, F>;
}
export interface IDataGridWithInternalStateProps<T extends object, F extends object>
extends IDataGridProps<T, F>, IUseDataStateProps<T, F> {}
export interface IRenderPagingProps<T extends object, F extends object> extends IParams<T, F> {
backIconButtonText?: string;
nextIconButtonText?: string;
labelRowsPerPage?: string;
// Example labelDisplayedRows={({ from, to, count }) => `${from}-${to} von ${count}`}
labelDisplayedRows?: ({
count,
from,
to,
}: {
count?: number;
from?: number;
to?: number;
}) => string;
handleChangePage: (page: number) => void;
handleChangeRowsPerPage: (rows: number) => void;
}