@resourge/react-fetch
Version:
[](LICENSE)
44 lines (43 loc) • 1.96 kB
TypeScript
/**
* react-fetch v1.43.1
*
* Copyright (c) resourge.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/
import { type PaginationConfig } from '../types/PaginationConfig';
import { type PaginationFunctionsType, type PaginationMethod } from '../types/PaginationFunctionsType';
import { type PaginationSearchParamsType } from '../types/ParamsType';
import { type FilterSearchParamsReturn } from './useFilterSearchParams';
export type Pagination = PaginationSearchParamsType & {
totalItems: number;
totalPages: number;
};
export type PaginationReturn<Data, FilterSearchParams extends Record<string, any> = Record<string, any>> = Omit<FilterSearchParamsReturn<FilterSearchParams>, 'setParams'> & PaginationFunctionsType<Data, FilterSearchParams> & {
/**
* Changes current page
*/
changePage: (page: number, totalItems?: number) => void;
/**
* Changes both current page and items per page
*/
changePagination: (page: number, perPage: number) => void;
/**
* Changes total number of pages using total number of items
* * Note: It doesn't trigger render.
*/
changeTotalPages: (totalItems: number) => void;
/**
* Builds href for use on navigation. (usually used with pagination component)
*/
getPaginationHref: (page: number) => string;
pagination: Pagination;
/**
* Resets pagination to initial/default values
*/
resetPagination: () => void;
};
export declare const usePagination: <Data extends any[], FilterSearchParams extends Record<string, any> = Record<string, any>>(method: PaginationMethod<Data, FilterSearchParams>, { initialState, filter: defaultFilter, sort: defaultSort, hash, deps, initialPage, initialPerPage, preload, fId, enable, ...config }: PaginationConfig<Data, FilterSearchParams>) => PaginationReturn<Data, FilterSearchParams>;