UNPKG

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.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useGetResourceLabel = void 0; var useResourceDefinitions_1 = require("./useResourceDefinitions"); var i18n_1 = require("../i18n"); var inflection_1 = require("inflection"); /** * A hook which returns function to get a translated resource name. It will use the label option of the `Resource` component if it was provided. * * @returns {GetResourceLabel} A function which takes a resource name and an optional number indicating the number of items (used for pluralization) and returns a translated string. * @example * const Menu = () => { * const resources = useResourceDefinitions(); * const getResourceLabel = useGetResourceLabel(); * * return ( * <ul> * {Object.keys(resources).map(name => ( * <li key={name}> * {getResourceLabel(name, 2)} * </li> * ))} * </ul> * ) * } */ var useGetResourceLabel = function () { var translate = (0, i18n_1.useTranslate)(); var definitions = (0, useResourceDefinitions_1.useResourceDefinitions)(); return function (resource, count) { if (count === void 0) { count = 2; } var resourceDefinition = definitions[resource]; var label = translate("resources.".concat(resource, ".name"), { smart_count: count, _: resourceDefinition && resourceDefinition.options && resourceDefinition.options.label ? translate(resourceDefinition.options.label, { smart_count: count, _: resourceDefinition.options.label, }) : (0, inflection_1.humanize)((0, inflection_1.inflect)(resource, count)), }); return label; }; }; exports.useGetResourceLabel = useGetResourceLabel; //# sourceMappingURL=useGetResourceLabel.js.map