UNPKG

@plone/volto

Version:
50 lines (42 loc) 1.46 kB
import React from 'react'; import PropTypes from 'prop-types'; import ConditionalLink from '@plone/volto/components/manage/ConditionalLink/ConditionalLink'; import Component from '@plone/volto/components/theme/Component/Component'; import { flattenToAppURL, isInternalURL } from '@plone/volto/helpers/Url/Url'; const SummaryTemplate = ({ items, linkTitle, linkHref, isEditMode }) => { let link = null; let href = linkHref?.[0]?.['@id'] || ''; if (isInternalURL(href)) { link = ( <ConditionalLink to={flattenToAppURL(href)} condition={!isEditMode}> {linkTitle || href} </ConditionalLink> ); } else if (href) { link = <a href={href}>{linkTitle || href}</a>; } return ( <> <div className="items"> {items.map((item) => ( <div className="listing-item" key={item['@id']}> <ConditionalLink item={item} condition={!isEditMode}> <Component componentName="PreviewImage" item={item} alt="" /> <div className="listing-body"> <h3>{item.title || item.id}</h3> <p>{item.description}</p> </div> </ConditionalLink> </div> ))} </div> {link && <div className="footer">{link}</div>} </> ); }; SummaryTemplate.propTypes = { items: PropTypes.arrayOf(PropTypes.any).isRequired, linkMore: PropTypes.any, isEditMode: PropTypes.bool, }; export default SummaryTemplate;