UNPKG

@kadconsulting/dry

Version:
53 lines (52 loc) 1.92 kB
import { type TableOptions, type TableState as OriginalTableState, type TableInstance as OriginalTableInstance, type HeaderGroup } from 'react-table'; export interface AdditionalTableState<D extends Record<string, unknown>> { expandedRowIds?: { [key: string]: boolean; }; columnOrder?: Array<string | number>; columnWidths?: { [key: string]: number; }; filters?: { [key: string]: any; }; sortBy?: Array<{ id: string; desc: boolean; }>; } export type TableState<D extends Record<string, unknown>> = OriginalTableState<D> & AdditionalTableState<D>; export interface CustomTableState<D extends Record<string, unknown>> extends TableState<D> { pageIndex: number; pageSize: number; selectedRowIds: { [key: string]: boolean; }; expandedRowIds: { [key: string]: boolean; }; columnOrder: Array<string | number>; columnWidths: { [key: string]: number; }; } export interface CustomHeaderGroup<D extends Record<string, unknown>> extends HeaderGroup<D> { getSortByToggleProps: () => void; isSorted: boolean; isSortedDesc: boolean; isResizing: boolean; } export interface CustomTableInstance<D extends Record<string, unknown>> extends OriginalTableInstance<D> { setGlobalFilter: (filterValue: any) => void; setPageSize: (size: number) => void; gotoPage: (page: number) => void; nextPage: () => void; previousPage: () => void; setColumnOrder: (order: Array<string | number>) => void; toggleRowSelected: (index: number, isSelected: boolean) => void; toggleRowExpanded: (id: string, isExpanded: boolean) => void; setColumnWidth: (id: string, width: number) => void; state: CustomTableState<D>; selectedFlatRows: any; } export declare function useCustomTable<D extends Record<string, unknown>>(options: TableOptions<D>): CustomTableInstance<D>;