import React, { SFC } from 'react'; import get from 'lodash/get'; import pure from 'recompose/pure'; import Typography, { TypographyProps } from '@material-ui/core/Typography'; import sanitizeRestProps from './sanitizeRestProps'; import { FieldProps, InjectedFieldProps, fieldPropTypes } from './types'; const TextField: SFC = ({ className, source, record = {}, ...rest }) => { const value = get(record, source); return ( {value && typeof value !== 'string' ? JSON.stringify(value) : value} ); }; // wat? TypeScript looses the displayName if we don't set it explicitly TextField.displayName = 'TextField'; const EnhancedTextField = pure(TextField); EnhancedTextField.defaultProps = { addLabel: true, }; EnhancedTextField.propTypes = { ...Typography.propTypes, ...fieldPropTypes, }; EnhancedTextField.displayName = 'EnhancedTextField'; export default EnhancedTextField;