import React, { ElementType, FC, HTMLAttributes } from 'react'; import classNames from 'classnames'; import { Icon } from '../Icon/Icon'; export interface TimelinePinProps extends HTMLAttributes { /** Classi aggiuntive da usare per il componente TimelinePin */ className?: string; /** Mostra un'icona all'interno del TimelinePin. Passare il nome dell'icona per utilizzarlo. */ iconName?: string; /** * Mostra un'icona all'interno del TimelinePin. Passare il nome dell'icona per utilizzarlo. * @deprecated. Utilizzare `iconName`. * */ icon?: string; /** * Titolo dell'icona all'interno del TimelinePin. * */ iconTitle?: string; /** Etichetta da associare all'elemento */ label: string; /** Quando abilitato indica che l'evento TimelinePin è collocato nel presente (azzurro) */ now?: boolean; /** Da utilizzare per mostrare un'etichetta per l'evento nel presente */ nowText?: string; /** Quando abilitato indica che l'evento TimelinePin è collocato nel passato (blu scuro) */ past?: boolean; /** Tag del pin da utilizzare a seconda della struttura */ tag?: ElementType; testId?: string; } export const TimelinePin: FC = ({ iconName = 'it-code-circle', icon = 'it-code-circle', iconTitle = '', label = ' ', past, now, nowText, testId, className, tag = 'h3', ...attributes }) => { const { children, ...rest } = attributes; const classes = classNames('timeline-element', className); const innerClasses = classNames('it-pin-wrapper', className, { 'it-evidence': past, 'it-now': now }); const pinIcon = (
); const pinLabel = (
{label}
); const pinTextNow = now && {nowText}; const Tag = tag; return (
{pinTextNow} {pinIcon} {pinLabel} {children}
); };