@vtex/admin-ui
Version:
> VTEX admin component library
51 lines (50 loc) • 1.59 kB
TypeScript
export declare function usePaginationState(params: UsePaginationParams): UsePaginationReturn;
export declare function checkDisabled(range: [number, number], total: number): {
prevDisabled: boolean;
nextDisabled: boolean;
};
export declare function setMax(value: number, max: number): number;
export declare function getState(page: number, pageSize: number, total: number): PaginationState;
export declare function defaultReducer(state: PaginationState, action: PaginationAction): PaginationState;
export declare type PaginationActionType = {
type: 'next' | 'prev' | 'reset';
} | {
type: 'setTotal';
total: number;
} | {
type: 'navigate';
page: number;
};
export interface UsePaginationParams {
/**
* Amount of itens that will be displayed in a page
*/
pageSize: number;
/**
* Total of items that are being paginated
* @default pageSize
*/
total?: number;
/**
* Initial page
* @default 1
*/
initialPage?: number;
/**
* Reducer used to handle state in usePagination hook
*/
stateReducer?: (state: PaginationState, action: PaginationAction) => PaginationState;
}
export interface PaginationState {
currentPage: number;
range: [number, number];
total: number;
prevDisabled: boolean;
nextDisabled: boolean;
}
export declare type PaginationAction = PaginationActionType & {
pageSize: number;
};
export interface UsePaginationReturn extends PaginationState {
paginate: (args: PaginationActionType) => void;
}