@prefecthq/prefect-ui-library
Version:
This library is the Vue and Typescript component library for [Prefect 2](https://github.com/PrefectHQ/prefect) and [Prefect Cloud 2](https://www.prefect.io/cloud/). _The components and utilities in this project are not meant to be used independently_.
37 lines (36 loc) • 2.19 kB
TypeScript
import { Getter } from '@prefecthq/prefect-design';
import { SubscriptionOptions } from '@prefecthq/vue-compositions';
import { ComputedRef, MaybeRef, Ref } from 'vue';
import { UseSubscriptions } from '../compositions/useSubscriptions';
type PaginationFilter = {
limit?: number;
offset?: number;
};
type PaginationParameters = [filter?: PaginationFilter, ...any[]];
type PaginationFetchAction = (...parameters: PaginationParameters) => Promise<unknown[]>;
type PaginationCountAction = (...parameters: PaginationParameters) => Promise<number>;
export type PaginationOptions = SubscriptionOptions & {
mode?: 'page' | 'infinite';
page?: MaybeRef<number>;
};
export type UsePaginationParameters<TFetch extends PaginationFetchAction, TFetchParameters extends Getter<Parameters<TFetch> | null>, TCount extends PaginationCountAction, TCountParameters extends Getter<Parameters<TCount> | null>> = {
fetchMethod: TFetch;
fetchParameters: TFetchParameters;
countMethod: TCount;
countParameters: TCountParameters;
options?: PaginationOptions;
};
export type UsePaginationEntity<TFetch extends PaginationFetchAction, TCount extends PaginationCountAction, TProperty extends string> = Omit<UsePagination<TFetch, TCount>, 'results'> & {
[P in TProperty]: ComputedRef<Awaited<ReturnType<TFetch>>>;
};
export type UsePagination<TFetch extends PaginationFetchAction, TCount extends PaginationCountAction> = {
subscriptions: UseSubscriptions<TCount | TFetch | (() => undefined)>['subscriptions'];
results: ComputedRef<Awaited<ReturnType<TFetch>>>;
total: ComputedRef<number>;
pages: ComputedRef<number>;
page: Ref<number>;
next: () => void;
previous: () => void;
};
export declare function usePagination<TFetch extends PaginationFetchAction, TFetchParameters extends Getter<Parameters<TFetch> | null>, TCount extends PaginationCountAction, TCountParameters extends Getter<Parameters<TCount> | null>>({ fetchMethod, fetchParameters: fetchParametersGetter, countMethod, countParameters: countParametersGetter, options, }: UsePaginationParameters<TFetch, TFetchParameters, TCount, TCountParameters>): UsePagination<TFetch, TCount>;
export {};