ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
48 lines • 1.85 kB
TypeScript
import { RaRecord, Identifier } from '../types';
import { UseGetManyHookValue } from '../dataProvider';
import { UseQueryOptions } from '@tanstack/react-query';
interface UseReferenceProps<RecordType extends RaRecord = any, ErrorType = Error> {
id: Identifier;
reference: string;
options?: Omit<UseQueryOptions<RecordType[], ErrorType>, 'queryFn' | 'queryKey'> & {
meta?: any;
};
}
export interface UseReferenceResult<RecordType extends RaRecord = any, ErrorType = Error> {
isLoading: boolean;
isPending: boolean;
isFetching: boolean;
referenceRecord?: RecordType;
error?: ErrorType | null;
refetch: UseGetManyHookValue<RecordType, ErrorType>['refetch'];
}
/**
* @typedef UseReferenceResult
* @type {Object}
* @property {boolean} isFetching: boolean indicating if the reference is loading
* @property {boolean} isLoading: boolean indicating if the reference has loaded at least once
* @property {Object} referenceRecord: the referenced record.
*/
/**
* Fetch reference record, and return it when available
*
* The reference prop should be the name of one of the <Resource> components
* added as <Admin> child.
*
* @example
*
* const { isLoading, referenceRecord } = useReference({
* id: 7,
* reference: 'users',
* });
*
* @param {Object} option
* @param {string} option.reference The linked resource name
* @param {string} option.id The id of the reference
* @param {Object} option.options Options passed to the dataProvider
*
* @returns {UseReferenceResult} The reference record
*/
export declare const useReference: <RecordType extends RaRecord<Identifier> = RaRecord<Identifier>, ErrorType = Error>({ reference, id, options, }: UseReferenceProps<RecordType, ErrorType>) => UseReferenceResult<RecordType, ErrorType>;
export {};
//# sourceMappingURL=useReference.d.ts.map