vue2-request-utils
Version:
Vue 3 composition API for data fetching. This is a version for Vue 2 by using @vue/composition-api.
31 lines (30 loc) • 1.64 kB
TypeScript
import { Ref } from "@vue/composition-api";
import { BaseOptions, FormatOptions, FRPlaceholderType } from "./core/config";
import { BaseResult } from "./core/useAsyncQuery";
import { IService } from "./core/utils/types";
export interface PaginationResult<R, P extends unknown[]> extends Omit<BaseResult<R, P>, "queries" | "reset"> {
current: Ref<number>;
pageSize: Ref<number>;
total: Ref<number>;
totalPage: Ref<number>;
changeCurrent: (current: number) => void;
changePageSize: (pageSize: number) => void;
reload: () => void;
}
export interface PaginationExtendsOption {
pagination?: {
currentKey?: string;
pageSizeKey?: string;
totalKey?: string;
totalPageKey?: string;
};
}
export interface PaginationFormatOptions<R, P extends unknown[], FR> extends Omit<FormatOptions<R, P, FR>, "queryKey">, PaginationExtendsOption {
}
export interface PaginationBaseOptions<R, P extends unknown[]> extends Omit<BaseOptions<R, P>, "queryKey">, PaginationExtendsOption {
}
export declare type PaginationMixinOptions<R, P extends unknown[], FR> = PaginationBaseOptions<R, P> | PaginationFormatOptions<R, P, FR>;
declare function usePagination<R, P extends unknown[] = any>(service: IService<R, P>): PaginationResult<R, P>;
declare function usePagination<R, P extends unknown[] = any, FR = FRPlaceholderType>(service: IService<R, P>, options: PaginationFormatOptions<R, P, FR>): PaginationResult<FR, P>;
declare function usePagination<R, P extends unknown[] = any>(service: IService<R, P>, options: PaginationBaseOptions<R, P>): PaginationResult<R, P>;
export default usePagination;