@dccs/react-datagrid-plain
Version:
A light datagrid build upon react-table-plain for React.
66 lines (65 loc) • 2.6 kB
TypeScript
import * as React from "react";
import { IColDef, ITablePlainProps as ITableProps, SortDirection } from "@dccs/react-table-plain";
import { IState } from "./IState";
import { IDataState, IUseDataStateProps } from "./useDataState";
export declare type OnLoadData = (page: number, rowsPerPage: number, orderBy: string | undefined, sort: SortDirection | undefined, filter: {
[key: string]: any;
} | undefined) => Promise<{
total: number;
data: any[];
}>;
export interface IRenderPagingProps extends IState {
backIconButtonText?: string;
nextIconButtonText?: string;
labelRowsPerPage?: string;
labelDisplayedRows?: ({ count, from, to, }: {
count?: number;
from?: number;
to?: number;
}) => string;
handleChangePage: (page: number) => void;
handleChangeRowsPerPage: (rows: number) => void;
}
export interface IDataGridTexts {
errorText?: string;
loadingText?: string;
pagingText?: string;
reloadText?: string;
backIconButtonText?: string;
nextIconButtonText?: string;
labelRowsPerPage?: string;
labelDisplayedRows?: ({ count, from, to, }: {
count?: number;
from?: number;
to?: number;
}) => string;
}
export interface IDataGridWithExternalStateProps extends IDataGridProps {
state?: IDataState;
}
export interface IDataGridWithInternalStateProps extends IDataGridProps, IUseDataStateProps {
}
export interface IDataGridProps {
texts?: IDataGridTexts;
colDef: IColDef[];
disablePaging?: boolean;
tableTheme?: any;
onRowClick?: (data: any) => void;
subComponent?: (data: any) => React.ReactNode;
renderTable?: (ps: ITableProps) => React.ReactElement;
renderLoading?: () => React.ReactElement;
renderError?: (load: () => void, errorText?: string, reloadText?: string) => React.ReactElement;
renderPaging?: (props: IRenderPagingProps) => React.ReactElement;
renderHeaderCell?: (col: IColDef, idx: number) => React.ReactNode;
renderFooterCell?: (col: IColDef, data: any[], idx: number) => React.ReactNode;
renderFilter?: (col: IColDef, idx: number) => React.ReactNode;
renderExpansionIndicator?: (expanded: boolean) => React.ReactNode;
rowProps?: (data: any) => object;
cellProps?: (data: any) => object;
ellipsis?: boolean;
selectedRow?: any | any[];
onChangeSelectedRow?: (data: any) => void;
selectedRowProps?: (data: any) => object;
rowSelectionColumnName?: string;
}
export declare function DataGridPlain(props: IDataGridWithInternalStateProps | IDataGridWithExternalStateProps): JSX.Element;