UNPKG

@kitconcept/volto-light-theme

Version:
62 lines (57 loc) 2 kB
// See Customization for more info import PropTypes from 'prop-types'; import ConditionalLink from '@plone/volto/components/manage/ConditionalLink/ConditionalLink'; import Card from '../../../primitives/Card/Card'; import UniversalLink from '@plone/volto/components/manage/UniversalLink/UniversalLink'; import { flattenToAppURL, isInternalURL } from '@plone/volto/helpers/Url/Url'; import config from '@plone/volto/registry'; import DefaultSummary from '@kitconcept/volto-light-theme/components/Summary/DefaultSummary'; import cx from 'classnames'; const DefaultTemplate = ({ 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 = <UniversalLink href={href}>{linkTitle || href}</UniversalLink>; } return ( <> <div className="items"> {items.map((item) => { const Summary = config.getComponent({ name: 'Summary', dependencies: [item['@type']], }).component || DefaultSummary; const showLink = !Summary.hideLink && !isEditMode; return ( <div className={cx('listing-item', { [`${item['@type']?.toLowerCase()}-listing`]: item['@type'], })} key={item['@id']} > <Card item={showLink ? item : null}> <Card.Summary> <Summary item={item} HeadingTag="h2" /> </Card.Summary> </Card> </div> ); })} </div> {link && <div className="footer">{link}</div>} </> ); }; DefaultTemplate.propTypes = { items: PropTypes.arrayOf(PropTypes.any).isRequired, linkMore: PropTypes.any, isEditMode: PropTypes.bool, }; export default DefaultTemplate;