admin-on-rest-fr05t1k
Version:
A frontend Framework for building admin applications on top of REST services, using ES6, React and Material UI
32 lines (27 loc) • 852 B
JavaScript
import React, { PropTypes } from 'react';
import onlyUpdateForKeys from 'recompose/onlyUpdateForKeys';
import compose from 'recompose/compose';
import translate from '../../i18n/translate';
const Title = ({ defaultTitle, record, title, translate }) => {
if (!title) {
return <span>{defaultTitle}</span>;
}
if (typeof title === 'string') {
return <span>{translate(title, { _: title })}</span>;
}
return React.cloneElement(title, { record });
};
Title.propTypes = {
defaultTitle: PropTypes.string.isRequired,
record: PropTypes.object,
translate: PropTypes.func.isRequired,
title: PropTypes.oneOfType([
PropTypes.string,
PropTypes.element,
]),
};
const enhance = compose(
translate,
onlyUpdateForKeys('defaultTitle', 'record', 'title'),
);
export default enhance(Title);