@finos/legend-application-marketplace
Version:
Legend Marketplace application core
18 lines • 1.84 kB
JavaScript
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