-export type DataColumns<T, F extends DataTableFilterItem = DataTableFilterItem> = Array<DataColumn<T, F>>;
-
-export interface DataTableDataProps<T> {
- items: T[];
- columns: DataColumns<T>;
- onRowClick: (event: React.MouseEvent<HTMLTableRowElement>, item: T) => void;
- onContextMenu: (event: React.MouseEvent<HTMLElement>, item: T) => void;
- onRowDoubleClick: (event: React.MouseEvent<HTMLTableRowElement>, item: T) => void;
- onSortToggle: (column: DataColumn<T>) => void;
- onFiltersChange: (filters: DataTableFilterItem[], column: DataColumn<T>) => void;
- extractKey?: (item: T) => React.Key;
- defaultView?: React.ReactNode;
+export type DataColumns<I, R> = Array<DataColumn<I, R>>;
+
+export enum DataTableFetchMode {
+ PAGINATED,
+ INFINITE
+}
+
+export interface DataTableDataProps<I> {
+ items: I[];
+ columns: DataColumns<I, any>;
+ onRowClick: (event: React.MouseEvent<HTMLTableRowElement>, item: I) => void;
+ onContextMenu: (event: React.MouseEvent<HTMLElement>, item: I) => void;
+ onRowDoubleClick: (event: React.MouseEvent<HTMLTableRowElement>, item: I) => void;
+ onSortToggle: (column: DataColumn<I, any>) => void;
+ onFiltersChange: (filters: DataTableFilters, column: DataColumn<I, any>) => void;
+ extractKey?: (item: I) => React.Key;
+ working?: boolean;
+ defaultViewIcon?: IconType;
+ defaultViewMessages?: string[];
+ currentItemUuid?: string;
+ currentRoute?: string;