copper-ui
Version:
Modern React UI components library with TypeScript support, built on top of Ant Design
44 lines • 2.6 kB
TypeScript
import { TTableColumn } from '../../model/col.types';
import { InferFiltersFromColumns, TTableQuickFilter, TTableQuickFiltersConfig } from '../../model/filter.types';
import { TTableSortState } from '../../model/sort.types';
import { TTableItem } from '../../model/table.types';
export type TTableState<TItem extends TTableItem, T extends readonly TTableColumn<TItem>[], Q extends TTableQuickFilter[]> = ReturnType<typeof useTableStates<TItem, T, Q>>;
export type TUseTableStatesProps<TItem extends TTableItem, T extends readonly TTableColumn<TItem>[], Q extends TTableQuickFilter[]> = {
columns: T;
quickFilters?: TTableQuickFiltersConfig;
filtersDebounceDelay?: number;
debounceFields?: (keyof InferFiltersFromColumns<TItem, T, Q>)[];
};
declare const useTableStates: <TItem extends TTableItem, T extends readonly TTableColumn<TItem>[], Q extends TTableQuickFilter[]>({ columns, quickFilters, filtersDebounceDelay, debounceFields, }: TUseTableStatesProps<TItem, T, Q>) => {
sort: TTableSortState;
setSort: import('../../../../../node_modules/react').Dispatch<import('../../../../../node_modules/react').SetStateAction<TTableSortState>>;
pagination: import('nuqs').Values<{
pageIndex: Omit<import('nuqs').ParserBuilder<number>, "parseServerSide"> & {
readonly defaultValue: number;
parseServerSide(value: string | string[] | undefined): number;
};
pageSize: Omit<import('nuqs').ParserBuilder<number>, "parseServerSide"> & {
readonly defaultValue: number;
parseServerSide(value: string | string[] | undefined): number;
};
}>;
setPagination: import('nuqs').SetValues<{
pageIndex: Omit<import('nuqs').ParserBuilder<number>, "parseServerSide"> & {
readonly defaultValue: number;
parseServerSide(value: string | string[] | undefined): number;
};
pageSize: Omit<import('nuqs').ParserBuilder<number>, "parseServerSide"> & {
readonly defaultValue: number;
parseServerSide(value: string | string[] | undefined): number;
};
}>;
totalPages: number;
filters: InferFiltersFromColumns<TItem, T, Q>;
debouncedFilters: InferFiltersFromColumns<TItem, T, Q>;
filterParsers: Record<string, import('nuqs').Parser<unknown>>;
setFilters: import('nuqs').SetValues<Record<string, import('nuqs').Parser<unknown>>>;
quickFilters: TTableQuickFiltersConfig | undefined;
setTotalPages: (newValue?: number) => void;
};
export default useTableStates;
//# sourceMappingURL=use-table-states.d.ts.map