UNPKG

@wanp/use-swr-data

Version:

use-swr-data is a React hook that simplifies data fetching and caching using SWR (stale-while-revalidate) strategy.

38 lines (37 loc) 1.42 kB
export type SimpleKey = string | string[]; export type AnyObject = Record<string, any>; export interface PageInfo { pageNum: number; pageSize: number; } export interface BaseSwrProps<TData = any, TParams = any> { reqKey: SimpleKey; req: (params: TParams) => Promise<TData>; ready?: boolean; simple?: boolean; params?: TParams extends AnyObject ? Partial<TParams> : TParams; paging?: undefined; swrConfig?: import("swr").SWRConfiguration<TData>; } export interface PagingSwrProps<TData = any, TParams extends AnyObject = any> extends Omit<BaseSwrProps<TData, TParams>, "paging"> { paging: true; defaultPage?: PageInfo; defaultSearch?: Partial<TParams>; } export interface UseSwrDataError extends Record<string, any> { } export interface BaseSwrResult<TData = any> { key: import("swr").Key; data?: TData; error?: UseSwrDataError; isLoading: boolean; isValidating: boolean; refresh: import("swr").KeyedMutator<TData>; } export interface PagingSwrResult<TData = any, TParams extends AnyObject = any> extends BaseSwrResult<TData> { pageInfo: PageInfo; searchInfo?: Partial<TParams> | undefined; onSearch: (value: Partial<TParams> | undefined) => void; setPage: import("react").Dispatch<import("react").SetStateAction<PageInfo>>; setSearch: import("react").Dispatch<import("react").SetStateAction<Partial<TParams> | undefined>>; }