UNPKG

ra-core

Version:

Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React

56 lines 1.91 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useResourceDefinition = void 0; const react_1 = require("react"); const defaults_js_1 = __importDefault(require("lodash/defaults.js")); const useResourceDefinitions_1 = require("./useResourceDefinitions.cjs"); const useResourceContext_1 = require("./useResourceContext.cjs"); /** * Hook to get the definition of a given resource * * @example // Get the current resource definition (based on ResourceContext) * * const definition = useResourceDefinition(); * console.log(definition); * // { * // name: 'posts', * // hasList: true, * // hasEdit: true, * // hasShow: true, * // hasCreate: true, * // options: {}, * // icon: PostIcon, * // } * * @example // Pass a resource prop to check a different resource definition * * const definition = useResourceDefinition({ resource: 'posts' }); */ const useResourceDefinition = (props) => { const resource = (0, useResourceContext_1.useResourceContext)(props); const resourceDefinitions = (0, useResourceDefinitions_1.useResourceDefinitions)(); const { hasCreate, hasEdit, hasList, hasShow, recordRepresentation } = props || {}; const definition = (0, react_1.useMemo)(() => { return (0, defaults_js_1.default)({}, { hasCreate, hasEdit, hasList, hasShow, recordRepresentation, }, resource ? resourceDefinitions[resource] : {}); }, [ resource, resourceDefinitions, hasCreate, hasEdit, hasList, hasShow, recordRepresentation, ]); return definition; }; exports.useResourceDefinition = useResourceDefinition; //# sourceMappingURL=useResourceDefinition.js.map