UNPKG

@refinedev/core

Version:

Refine is a React meta-framework for building enterprise-level, data-intensive applications rapidly with support for modern UI libraries and headless integrations.

109 lines 4.51 kB
import React from "react"; import type { QueryObserverResult, UseQueryOptions } from "@tanstack/react-query"; import type { BaseRecord, CrudFilter, CrudSort, GetListResponse, HttpError, MetaQuery, Pagination, Prettify } from "../../contexts/data/types"; import type { LiveModeProps } from "../../contexts/live/types"; import type { SuccessErrorNotification } from "../../contexts/notification/types"; import type { BaseListProps } from "../data/useList"; import type { MakeOptional } from "../../definitions/types/index"; import type { UseLoadingOvertimeOptionsProps, UseLoadingOvertimeReturnType } from "../useLoadingOvertime"; type SetFilterBehavior = "merge" | "replace"; export type useTableProps<TQueryFnData, TError, TData> = { /** * Resource name for API data interactions * @default Resource name that it reads from route */ resource?: string; /** * Configuration for pagination */ pagination?: Pagination; /** * Sort configs */ sorters?: { /** * Initial sorter state */ initial?: CrudSort[]; /** * Default and unchangeable sorter state * @default `[]` */ permanent?: CrudSort[]; /** * Whether to use server side sorting or not. * @default "server" */ mode?: "server" | "off"; }; /** * Filter configs */ filters?: { /** * Initial filter state */ initial?: CrudFilter[]; /** * Default and unchangeable filter state * @default `[]` */ permanent?: CrudFilter[]; /** * Default behavior of the `setFilters` function * @default `"merge"` */ defaultBehavior?: SetFilterBehavior; /** * Whether to use server side filter or not. * @default "server" */ mode?: "server" | "off"; }; /** * Sortings, filters, page index and records shown per page are tracked by browser history * @default Value set in [Refine](/docs/api-reference/core/components/refine-config/#syncwithlocation). If a custom resource is given, it will be `false` */ syncWithLocation?: boolean; /** * react-query's [useQuery](https://tanstack.com/query/v5/docs/framework/react/reference/useQuery) options */ queryOptions?: MakeOptional<UseQueryOptions<GetListResponse<TQueryFnData>, TError, GetListResponse<TData>>, "queryKey" | "queryFn">; /** * Metadata query for dataProvider */ meta?: MetaQuery; /** * If there is more than one `dataProvider`, you should use the `dataProviderName` that you will use. */ dataProviderName?: string; } & SuccessErrorNotification<GetListResponse<TData>, TError, Prettify<BaseListProps>> & LiveModeProps & UseLoadingOvertimeOptionsProps; type ReactSetState<T> = React.Dispatch<React.SetStateAction<T>>; type SyncWithLocationParams = { pagination: { currentPage?: number; pageSize?: number; }; sorters: CrudSort[]; filters: CrudFilter[]; }; export type useTableReturnType<TData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError> = { tableQuery: QueryObserverResult<GetListResponse<TData>, TError>; sorters: CrudSort[]; setSorters: (sorter: CrudSort[]) => void; filters: CrudFilter[]; setFilters: ((filters: CrudFilter[], behavior?: SetFilterBehavior) => void) & ((setter: (prevFilters: CrudFilter[]) => CrudFilter[]) => void); createLinkForSyncWithLocation: (params: SyncWithLocationParams) => string; currentPage: number; setCurrentPage: ReactSetState<useTableReturnType["currentPage"]>; pageSize: number; setPageSize: ReactSetState<useTableReturnType["pageSize"]>; pageCount: number; result: { data: TData[]; total: number | undefined; }; } & UseLoadingOvertimeReturnType; export declare function useTable<TQueryFnData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, TData extends BaseRecord = TQueryFnData>({ pagination, filters: filtersFromProp, sorters: sortersFromProp, syncWithLocation: syncWithLocationProp, resource: resourceFromProp, successNotification, errorNotification, queryOptions, liveMode: liveModeFromProp, onLiveEvent, liveParams, meta, dataProviderName, overtimeOptions, }?: useTableProps<TQueryFnData, TError, TData>): useTableReturnType<TData, TError>; export {}; //# sourceMappingURL=index.d.ts.map