ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
32 lines • 1.14 kB
JavaScript
import { useMemo } from 'react';
import { useGetPathForRecord } from "../../routing/index.js";
import { useReference } from "../useReference.js";
import { useFieldValue } from "../../util/index.js";
export const useReferenceFieldController = (options) => {
const { link, reference, queryOptions } = options;
if (!reference) {
throw new Error('useReferenceFieldController: missing reference prop. You must provide a reference, e.g. reference="posts".');
}
const id = useFieldValue(options);
const referenceRecordQuery = useReference({
reference,
id,
options: {
...queryOptions,
enabled: (queryOptions?.enabled == null ||
queryOptions?.enabled === true) &&
id != null,
},
});
const path = useGetPathForRecord({
record: referenceRecordQuery.referenceRecord,
resource: reference,
link,
});
const result = useMemo(() => ({
...referenceRecordQuery,
link: path,
}), [path, referenceRecordQuery]);
return result;
};
//# sourceMappingURL=useReferenceFieldController.js.map