///
declare type sortDirectionType = 'ASC' | 'DESC' | 'NONE';
interface TableState {
data: Array;
sortColumn: string | number;
sortDirection: sortDirectionType;
perPage: number;
from: number;
to: number;
selectedRows: Array;
allSelected: boolean;
selectionId: string | number;
selecting: boolean;
sorting: boolean;
paging: boolean;
}
declare type setSortingAction = (sortColumn: string | number) => void;
declare type setPageAction = (forward: boolean) => void;
declare type setPerPageAction = (perPage: number) => void;
declare type setSelectRowAction = (rowId: string | number) => void;
declare type setSelectAllAction = () => void;
declare type tableStateAction = {
type: 'CHANGE_PAGE';
forward: boolean;
} | {
type: 'CHANGE_PER_PAGE';
perPage: number;
} | {
type: 'SORT_COLUMN';
sortColumn: string | number;
} | {
type: 'SET_DATA';
data: Array;
} | {
type: 'SELECT_ROW' | 'DESELECT_ROW';
id: string | number;
} | {
type: 'SELECT_ALL' | 'DESELECT_ALL';
};
declare type TableStateHookType = [TableState, {
setSorting: setSortingAction;
setPage: setPageAction;
setPerPage: setPerPageAction;
setSelectRow: setSelectRowAction;
setSelectAll: setSelectAllAction;
dispatch: React.Dispatch;
}];
declare type TableStateArgs = {
data: Array;
} & ({
sorting: true;
sortColumn: string | number;
sortDirection?: sortDirectionType;
} | {}) & ({
paging: true;
perPage?: number;
from?: number;
to?: number;
} | {}) & ({
selecting: true;
selectionId: string | number;
allSelected?: boolean;
selectedRows?: Array;
} | {});
export declare function useTableState(args: TableStateArgs): TableStateHookType;
export {};