import * as React from 'react'; import { injectable } from 'inversify'; import { ListItemRenderer } from '../components/component-list/list-item-renderer'; import { BoardPackage } from '../../common/protocol/boards-service'; @injectable() export class BoardItemRenderer extends ListItemRenderer { renderItem(item: BoardPackage, install: (item: BoardPackage) => Promise): React.ReactNode { const name = {item.name}; const author = {item.author}; const installedVersion = !!item.installedVersion &&
Version {item.installedVersion} INSTALLED
; const summary =
{item.summary}
; const description =
{item.description}
; const moreInfo = !!item.moreInfoLink && More info; const installButton = item.installable && !item.installedVersion && ; const versions = (() => { const { availableVersions } = item; if (!!item.installedVersion || availableVersions.length === 0) { return undefined; } else if (availableVersions.length === 1) { return } else { return ; } })(); return
{name} by {author} {installedVersion}
{summary} {description}
{moreInfo}
{installButton} {versions}
; } }