UNPKG

@resourge/react-fetch

Version:

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)

44 lines (43 loc) 1.96 kB
/** * 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>;