UNPKG

design-comuni-plone-theme

Version:
104 lines (100 loc) 3.74 kB
import PropTypes from 'prop-types'; import { defineMessages, useIntl } from 'react-intl'; import { RichTextSection } from 'design-comuni-plone-theme/components/ItaliaTheme/View'; const messages = defineMessages({ tempi_e_scadenze: { id: 'tempi_e_scadenze', defaultMessage: 'Tempi e scadenze', }, }); const ServizioTempiScadenze = ({ content, moment }) => { const intl = useIntl(); return ( <RichTextSection data={content.tempi_e_scadenze} add_class="style_ol_list cmp-timeline" tag_id="deadlines" title={intl.formatMessage(messages.tempi_e_scadenze)} lighthouseId="service-calendar-text" > <div className="calendar-vertical mb-3" data-element="service-calendar-list" > <div className="calendar-vertical mb-3"> {content.timeline_tempi_scadenze?.map((entry, i) => { let milestone_label = ( <div className="calendar-date-day"> <small className="calendar-date-day__year"></small> <span className="title-xxlarge-regular d-flex justify-content-center"></span> <small className="calendar-date-day__month"></small> </div> ); if (entry?.data_scadenza) { milestone_label = ( <div className="calendar-date-day"> <span className="title-xxlarge-regular d-flex justify-content-center mb-1"> {moment(entry.data_scadenza).format('DD')} </span> <small className="calendar-date-day__month mb-1"> {moment(entry.data_scadenza).format('MMMM')} </small> <small className="calendar-date-day__year"> {moment(entry.data_scadenza).format('Y')} </small> </div> ); } else { if (entry?.interval_qt && entry?.interval_type) milestone_label = ( <div className="calendar-date-day"> <small className="calendar-date-day__year"></small> <span className="title-xxlarge-regular d-flex justify-content-center"> {entry.interval_qt} </span> <small className="calendar-date-day__month"> {entry.interval_type} </small> </div> ); } return ( <div className="calendar-date"> {milestone_label} <div className="calendar-date-description rounded"> <div className="calendar-date-description-content"> {entry?.milestone && ( <h3 className="title-medium-2 mb-0">{entry.milestone}</h3> )} {entry?.milestone_description && ( <p className="info-text mt-1 mb-0"> {entry.milestone_description} </p> )} </div> </div> </div> ); })} </div> </div> </RichTextSection> ); }; ServizioTempiScadenze.propTypes = { content: PropTypes.shape({ tempi_e_scadenze: PropTypes.shape({ data: PropTypes.string, }), timeline_tempi_scadenze: PropTypes.arrayOf( PropTypes.shape({ data_scadenza: PropTypes.string, milestone: PropTypes.string.isRequired, milestone_description: PropTypes.string, interval_qt: PropTypes.string, interval_type: PropTypes.string, }), ), }), }; export default ServizioTempiScadenze;