ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
36 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useReferenceFieldController = void 0;
const react_1 = require("react");
const routing_1 = require("../../routing/index.cjs");
const useReference_1 = require("../useReference.cjs");
const util_1 = require("../../util/index.cjs");
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 = (0, util_1.useFieldValue)(options);
const referenceRecordQuery = (0, useReference_1.useReference)({
reference,
id,
options: {
...queryOptions,
enabled: (queryOptions?.enabled == null ||
queryOptions?.enabled === true) &&
id != null,
},
});
const path = (0, routing_1.useGetPathForRecord)({
record: referenceRecordQuery.referenceRecord,
resource: reference,
link,
});
const result = (0, react_1.useMemo)(() => ({
...referenceRecordQuery,
link: path,
}), [path, referenceRecordQuery]);
return result;
};
exports.useReferenceFieldController = useReferenceFieldController;
//# sourceMappingURL=useReferenceFieldController.js.map