design-comuni-plone-theme
Version:
Volto Theme for Italia design guidelines
107 lines (101 loc) • 3.13 kB
JSX
import PropTypes from 'prop-types';
import { defineMessages, useIntl } from 'react-intl';
import { UniversalLink } from '@plone/volto/components';
import {
RichText,
RichTextSection,
richTextHasContent,
OfficeCard,
} from 'design-comuni-plone-theme/components/ItaliaTheme/View';
const ServizioAccedi = ({ content }) => {
const intl = useIntl();
return (
<>
{(richTextHasContent(content.canale_digitale) ||
content.canale_digitale_link ||
richTextHasContent(content.prenota_appuntamento) ||
content.canale_fisico?.length > 0) && (
<RichTextSection
data={content.canale_digitale}
tag_id="submit-request"
title={intl.formatMessage(messages.canale_digitale)}
hasBg
p="4"
lighthouseId="service-generic-access"
>
{content.canale_digitale_link && (
<div className="mb-4">
<p data-element="service-online-access">
<UniversalLink
href={content.canale_digitale_link}
className="btn btn-primary mobile-full"
>
{intl.formatMessage(messages.canale_digitale_link)}
</UniversalLink>
</p>
</div>
)}
<RichText
data={content.prenota_appuntamento}
content={content}
serif={false}
/>
{content.canale_fisico?.map?.((canale) => (
<div className="mt-3">
<OfficeCard
key={canale['@id']}
office={canale}
data-element="service-generic-access"
/>
</div>
))}
</RichTextSection>
)}
{(content.dove_rivolgersi?.length > 0 ||
richTextHasContent(content.dove_rivolgersi_extra)) && (
<RichTextSection
title={intl.formatMessage(messages.dove_rivolgersi)}
lighthouseId="service-generic-access"
>
<div className="card-wrapper card-teaser-wrapper card-teaser-wrapper-equal">
{content.dove_rivolgersi?.map?.((dove) => (
<OfficeCard
office={dove}
data-element="service-generic-access"
key={dove['@id']}
/>
))}
</div>
<RichText
data={content.dove_rivolgersi_extra}
lighthouseId="service-generic-access"
/>
</RichTextSection>
)}
</>
);
};
ServizioAccedi.propTypes = {
content: PropTypes.shape({
canale_digitale: PropTypes.object,
}),
};
export default ServizioAccedi;
const messages = defineMessages({
canale_digitale: {
id: 'servizio_canale_digitale',
defaultMessage: 'Accedi al servizio',
},
canale_digitale_link: {
id: 'servizio_canale_digitale_link',
defaultMessage: 'Accedi al servizio',
},
prenota_appuntamento: {
id: 'servizio_prenota_appuntamento',
defaultMessage: 'Prenota appuntamento',
},
dove_rivolgersi: {
id: 'servizio_dove_rivolgersi',
defaultMessage: 'Dove rivolgersi',
},
});