ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
44 lines • 1.72 kB
JavaScript
import { useResourceDefinitions } from './useResourceDefinitions';
import { useTranslate } from '../i18n';
import { humanize, inflect } from '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>
* )
* }
*/
export var useGetResourceLabel = function () {
var translate = useTranslate();
var definitions = 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,
})
: humanize(inflect(resource, count)),
});
return label;
};
};
//# sourceMappingURL=useGetResourceLabel.js.map