You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
export interface RequestData<T> {
|
|
data: T[];
|
|
success?: boolean;
|
|
total?: number;
|
|
[key: string]: any;
|
|
}
|
|
export interface UseFetchDataAction<T extends RequestData<any>> {
|
|
dataSource: T['data'] | T;
|
|
loading: boolean | undefined;
|
|
hasMore: boolean;
|
|
current: number;
|
|
pageSize: number;
|
|
total: number;
|
|
cancel: () => void;
|
|
reload: () => Promise<void>;
|
|
fetchMore: () => void;
|
|
fullScreen?: () => void;
|
|
resetPageIndex: () => void;
|
|
reset: () => void;
|
|
setPageInfo: (pageInfo: Partial<PageInfo>) => void;
|
|
}
|
|
interface PageInfo {
|
|
hasMore: boolean;
|
|
page: number;
|
|
pageSize: number;
|
|
total: number;
|
|
}
|
|
declare const useFetchData: <T extends RequestData<any>>(getData: (params: {
|
|
pageSize: number;
|
|
current: number;
|
|
}) => Promise<T>, defaultData?: Partial<T["data"]> | undefined, options?: {
|
|
defaultCurrent?: number | undefined;
|
|
defaultPageSize?: number | undefined;
|
|
effects?: any[] | undefined;
|
|
onLoad?: ((dataSource: T["data"]) => void) | undefined;
|
|
onRequestError?: ((e: Error) => void) | undefined;
|
|
manual: boolean;
|
|
} | undefined) => UseFetchDataAction<T>;
|
|
export default useFetchData;
|