UNPKG

@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
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 {};