@plone/volto
Version:
Volto
50 lines (42 loc) • 1.46 kB
JSX
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;