UNPKG

design-comuni-plone-theme

Version:
58 lines (50 loc) 1.49 kB
import React from 'react'; import { useIntl, defineMessages } from 'react-intl'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { UniversalLink } from '@plone/volto/components'; import { Icon } from 'design-comuni-plone-theme/components/ItaliaTheme'; const propTypes = { iconName: PropTypes.string, date: PropTypes.any, href: PropTypes.string, }; const messages = defineMessages({ categoryIcon: { id: 'category_icon', defaultMessage: 'Icona categoria', }, }); const CardCategory = (props) => { const { iconName, date, href, children, ...rest } = props; const intl = useIntl(); const classes = classNames({ 'category-top': date || ' ', 'categoryicon-top': iconName, }); // Simple category link const categoryLink = href && ( <UniversalLink href={href} className="category"> {children} </UniversalLink> ); const categoryDate = date && ( <span className="data d-inline-flex">{date}</span> ); // Category with icon const categoryText = !href && children && ( <span className="text">{children}</span> ); const iconTitle = rest.title || intl.formatMessage(messages.categoryIcon); const categoryIcon = iconName && <Icon icon={iconName} title={iconTitle} />; return ( <div className={classes} {...rest}> {categoryLink} {categoryIcon} {categoryText} {categoryDate} </div> ); }; CardCategory.propTypes = propTypes; export default CardCategory;