UNPKG

@finos/legend-application-marketplace

Version:
18 lines 1.84 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { clsx, deserializeIcon, CubesLoadingIndicator, CubesLoadingIndicatorIcon, } from '@finos/legend-art'; import { V1_DataProductEmbeddedImageIcon, V1_DataProductLibraryIcon, } from '@finos/legend-graph'; export const LegendMarketplaceListItem = (props) => { const { content, actions, onClick, className, cardMedia, loadingMedia } = props; const cardImage = cardMedia instanceof V1_DataProductEmbeddedImageIcon ? cardMedia.imageUrl : typeof cardMedia === 'string' ? cardMedia : undefined; const cardIcon = cardMedia instanceof V1_DataProductLibraryIcon ? cardMedia : undefined; return (_jsxs("div", { className: clsx('legend-marketplace-list-item', className), onClick: onClick, role: "button", tabIndex: 0, onKeyDown: (e) => { if (e.key === 'Enter') { onClick?.(); } }, children: [(loadingMedia || cardMedia !== undefined) && (_jsx("div", { className: "legend-marketplace-list-item__thumbnail", children: loadingMedia ? (_jsx("div", { className: "legend-marketplace-list-item__thumbnail__loading", children: _jsx(CubesLoadingIndicator, { isLoading: true, children: _jsx(CubesLoadingIndicatorIcon, {}) }) })) : cardIcon ? (_jsx("div", { className: "legend-marketplace-list-item__thumbnail__icon", children: deserializeIcon(cardIcon.libraryId, cardIcon.iconId) })) : (_jsx("div", { className: "legend-marketplace-list-item__thumbnail__image", style: cardImage ? { backgroundImage: `url(${cardImage})` } : undefined })) })), _jsx("div", { className: "legend-marketplace-list-item__body", children: content }), actions && (_jsx("div", { className: "legend-marketplace-list-item__actions", children: actions }))] })); }; //# sourceMappingURL=LegendMarketplaceListItem.js.map