import React, { SFC } from 'react'; import pure from 'recompose/pure'; import Typography, { TypographyProps } from '@material-ui/core/Typography'; import sanitizeRestProps from './sanitizeRestProps'; import { FieldProps, InjectedFieldProps, fieldPropTypes } from './types'; interface Props extends FieldProps { render: (record: object, source: string) => any; } /** * @example * `${record.first_name} ${record.last_name}`} /> */ const FunctionField: SFC = ({ className, record = {}, source, render, ...rest }) => record ? ( {render(record, source)} ) : null; const EnhancedFunctionField = pure(FunctionField); EnhancedFunctionField.defaultProps = { addLabel: true, }; EnhancedFunctionField.propTypes = { ...Typography.propTypes, ...fieldPropTypes, }; EnhancedFunctionField.displayName = 'EnhancedFunctionField'; export default EnhancedFunctionField;