diff --git a/packages/core/content-type-builder/admin/src/components/ListRow/DisplayedType.js b/packages/core/content-type-builder/admin/src/components/ListRow/DisplayedType.js new file mode 100644 index 0000000000..bd70e25ec4 --- /dev/null +++ b/packages/core/content-type-builder/admin/src/components/ListRow/DisplayedType.js @@ -0,0 +1,48 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { useIntl } from 'react-intl'; +import { Typography } from '@strapi/design-system/Typography'; +import getTrad from '../../utils/getTrad'; + +const DisplayedType = ({ readableType, customField, repeatable }) => { + const { formatMessage } = useIntl(); + + if (customField) { + return ( + + {formatMessage({ + id: getTrad('attribute.customField'), + defaultMessage: 'Custom field', + })} + + ); + } + + return ( + + {formatMessage({ + id: getTrad(`attribute.${readableType}`), + defaultMessage: readableType, + })} +   + {repeatable && + formatMessage({ + id: getTrad('component.repeatable'), + defaultMessage: '(repeatable)', + })} + + ); +}; + +DisplayedType.defaultProps = { + customField: null, + repeatable: false, +}; + +DisplayedType.propTypes = { + readableType: PropTypes.string.isRequired, + customField: PropTypes.bool, + repeatable: PropTypes.bool, +}; + +export default DisplayedType; diff --git a/packages/core/content-type-builder/admin/src/components/ListRow/index.js b/packages/core/content-type-builder/admin/src/components/ListRow/index.js index 2758729673..3d94d151db 100644 --- a/packages/core/content-type-builder/admin/src/components/ListRow/index.js +++ b/packages/core/content-type-builder/admin/src/components/ListRow/index.js @@ -17,6 +17,7 @@ import Curve from '../../icons/Curve'; import UpperFist from '../UpperFirst'; import BoxWrapper from './BoxWrapper'; import AttributeIcon from '../AttributeIcon'; +import DisplayedType from './DisplayedType'; function ListRow({ configurable, @@ -39,7 +40,7 @@ function ListRow({ const isMorph = type === 'relation' && relation.includes('morph'); const ico = ['integer', 'biginteger', 'float', 'decimal'].includes(type) ? 'number' : type; - let readableType = customField || type; + let readableType = type; if (['integer', 'biginteger', 'float', 'decimal'].includes(type)) { readableType = 'number'; @@ -119,18 +120,11 @@ function ListRow({ ) : ( - - {formatMessage({ - id: getTrad(`attribute.${readableType}`), - defaultMessage: customField ? 'Custom field' : type, - })} -   - {repeatable && - formatMessage({ - id: getTrad('component.repeatable'), - defaultMessage: '(repeatable)', - })} - + )}