@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
Source Map (JSON)
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