UNPKG

ra-core

Version:

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

45 lines (39 loc) 1.29 kB
import { useCallback, ReactNode } from 'react'; import { useTranslate } from './useTranslate'; import { getFieldLabelTranslationArgs } from '../util'; import { useResourceContext, useOptionalSourceContext } from '../core'; export const useTranslateLabel = () => { const translate = useTranslate(); const resourceFromContext = useResourceContext(); const sourceContext = useOptionalSourceContext(); return useCallback( ({ source, label, resource, }: { source?: string; label?: ReactNode; resource?: string; }) => { if (label === false || label === '') { return null; } if (label && typeof label !== 'string') { return label; } return translate( ...getFieldLabelTranslationArgs({ label: label as string, defaultLabel: source ? sourceContext?.getLabel(source) : undefined, resource, resourceFromContext, source, }) ); }, [resourceFromContext, translate, sourceContext] ); };