design-comuni-plone-theme
Version:
Volto Theme for Italia design guidelines
68 lines (62 loc) • 1.75 kB
JSX
import React from 'react';
import PropTypes from 'prop-types';
import { defineMessages, useIntl } from 'react-intl';
import {
RichText,
RichTextSection,
richTextHasContent,
} from 'design-comuni-plone-theme/components/ItaliaTheme/View';
const messages = defineMessages({
costi_e_vincoli_header: {
id: 'costi_e_vincoli_header',
defaultMessage: 'Quanto costa',
},
vincoli: {
id: 'vincoli',
defaultMessage: 'Vincoli',
},
});
const ServizioCostiVincoli = ({ content }) => {
const intl = useIntl();
const sectionTitleToRender = () => {
if (richTextHasContent(content.costi))
return intl.formatMessage(messages.costi_e_vincoli_header);
else if (
!richTextHasContent(content.costi) &&
richTextHasContent(content.vincoli)
)
return intl.formatMessage(messages.vincoli);
};
return richTextHasContent(content.costi) ||
richTextHasContent(content.vincoli) ? (
<RichTextSection tag_id="costs" title={sectionTitleToRender()}>
{richTextHasContent(content.costi) && (
<RichText add_class="mb-5" data={content.costi} />
)}
{richTextHasContent(content.vincoli) && (
<RichText
title={
richTextHasContent(content.costi)
? intl.formatMessage(messages.vincoli)
: null
}
title_size="h3"
title_class_name="h5"
add_class="mb-5"
data={content.vincoli}
/>
)}
</RichTextSection>
) : null;
};
ServizioCostiVincoli.propTypes = {
content: PropTypes.shape({
costi: PropTypes.shape({
data: PropTypes.object,
}),
vincoli: PropTypes.shape({
data: PropTypes.object,
}),
}),
};
export default ServizioCostiVincoli;