import React, { FC, HTMLAttributes, MouseEvent } from 'react'; import classNames from 'classnames'; import { Icon } from '../Icon/Icon'; export interface CardCategoryProps extends HTMLAttributes { /** Mostra un'icona nella Card. Passare il nome dell'icona per utilizzarlo. */ iconName?: string; /** Mostra la data nella Card. Passare una data già formattata come stringa. */ date?: string; /** Se usato come link, passare l'URL target. */ href?: string; /** Descrizione della data (es. 'Data evento') */ dateDescription?: string; /** Descrizione del testo (es. 'Titolo evento') */ textDescription?: string; /** Titolo dell' icona */ iconTitle?: string; /** Da utilizzare al posto di url quando la gestione del click è in JS */ onClick?: (event: MouseEvent) => void; testId?: string; } export const CardCategory: FC = ({ iconName, iconTitle, date, href, onClick, testId, children, textDescription, dateDescription, ...rest }) => { const classes = classNames({ 'category-top': date || ' ', 'categoryicon-top': iconName }); // Simple category link const categoryLink = !iconName && ( <> {textDescription && {textDescription}} {children} ); const categoryDate = date && {date}; // Category with icon const categoryText = iconName && {children}; const categoryIcon = iconName && ; return (
{categoryLink} {categoryIcon} {categoryText && textDescription && {textDescription}} {categoryText} {dateDescription && {dateDescription}} {categoryDate}
); };