design-react-kit
Version:
Componenti React per Bootstrap 5
1 lines • 3.49 kB
Source Map (JSON)
{"version":3,"sources":["../../src/List/ListItem.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport React, { AnchorHTMLAttributes, ElementType, FC, ReactNode } from 'react';\n\nexport interface ListItemProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n /** Indica se l'elemento è attivo o no */\n active?: boolean;\n /** Indica se l'elemento ha un avatar */\n avatar?: ReactNode;\n /** Indica se l'elemento ha una icona */\n icon?: ReactNode;\n /** Indica se l'elemento ha una immagine */\n img?: ReactNode;\n /** Utilizzarlo in caso di utilizzo di componenti personalizzati */\n tag?: ElementType;\n /** Classi aggiuntive da usare per il componente ListItem */\n className?: string;\n /** Classi aggiuntive da usare per l'elemento contenitore dell'item */\n wrapperClassName?: string;\n /** Indica il link a cui l'elemento deve puntare. */\n href?: string;\n /** Indica il link route a cui l'elemento deve puntare. */\n to?: string;\n testId?: string;\n}\n\nexport const ListItem: FC<ListItemProps> & {\n MultipleAction: typeof MultipleAction;\n} = ({\n className,\n active,\n avatar,\n icon,\n img,\n href,\n tag = 'div',\n to,\n wrapperClassName,\n testId,\n children,\n ...attributes\n}) => {\n const Tag = tag;\n const classes = classNames(className, { active }, 'list-item'),\n classesItem = classNames(className, {\n 'it-rounded-icon': icon,\n 'avatar size-lg': avatar,\n 'it-thumb': img\n }),\n leftItem = icon || avatar || img;\n\n if (href) {\n return (\n <li className={wrapperClassName} data-testid={testId}>\n <a href={href || '#'} {...attributes} className={classes}>\n <div className='it-right-zone'>{children}</div>\n </a>\n </li>\n );\n }\n\n return (\n <li className={wrapperClassName} data-testid={testId}>\n <Tag {...attributes} className={classes} href={href} to={to}>\n {leftItem && <div className={classesItem}>{leftItem}</div>}\n <div className='it-right-zone'>{children}</div>\n </Tag>\n </li>\n );\n};\n\nconst MultipleAction: FC<ListItemProps> = ({ children }) => {\n return <span className='it-multiple'>{children}</span>;\n};\n\nListItem.MultipleAction = MultipleAction;\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,2BACvBC,EAAwE,sBAwB3DH,EAET,CAAC,CACH,UAAAI,EACA,OAAAC,EACA,OAAAC,EACA,KAAAC,EACA,IAAAC,EACA,KAAAC,EACA,IAAAC,EAAM,MACN,GAAAC,EACA,iBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAM,CACJ,IAAMC,EAAMN,EACNO,KAAU,EAAAC,SAAWd,EAAW,CAAE,OAAAC,CAAO,EAAG,WAAW,EAC3Dc,KAAc,EAAAD,SAAWd,EAAW,CAClC,kBAAmBG,EACnB,iBAAkBD,EAClB,WAAYE,CACd,CAAC,EACDY,EAAWb,GAAQD,GAAUE,EAE/B,OAAIC,EAEA,EAAAY,QAAA,cAAC,MAAG,UAAWT,EAAkB,cAAaC,GAC5C,EAAAQ,QAAA,cAAC,KAAE,KAAMZ,GAAQ,IAAM,GAAGM,EAAY,UAAWE,GAC/C,EAAAI,QAAA,cAAC,OAAI,UAAU,iBAAiBP,CAAS,CAC3C,CACF,EAKF,EAAAO,QAAA,cAAC,MAAG,UAAWT,EAAkB,cAAaC,GAC5C,EAAAQ,QAAA,cAACL,EAAA,CAAK,GAAGD,EAAY,UAAWE,EAAS,KAAMR,EAAM,GAAIE,GACtDS,GAAY,EAAAC,QAAA,cAAC,OAAI,UAAWF,GAAcC,CAAS,EACpD,EAAAC,QAAA,cAAC,OAAI,UAAU,iBAAiBP,CAAS,CAC3C,CACF,CAEJ,EAEMQ,EAAoC,CAAC,CAAE,SAAAR,CAAS,IAC7C,EAAAO,QAAA,cAAC,QAAK,UAAU,eAAeP,CAAS,EAGjDd,EAAS,eAAiBsB","names":["ListItem_exports","__export","ListItem","__toCommonJS","import_classnames","import_react","className","active","avatar","icon","img","href","tag","to","wrapperClassName","testId","children","attributes","Tag","classes","classNames","classesItem","leftItem","React","MultipleAction"]}