import { IAssetListProps, IAsset } from '../interfaces' import { formatFileSize } from '../utils/format' import { getString } from '../utils/getString' const { Card, CardBody } = wp.components export const AssetList = ({ assets, repository, releaseTag, isLatest, selectedAsset, onSelectAsset, strings = {} }: IAssetListProps) => { const handleCardClick = (asset: IAsset) => { if (selectedAsset?.id === asset.id) { onSelectAsset(null) } else { onSelectAsset(asset) } } return (

{isLatest ? `${strings.assetsIn || getString('assets.assetsIn')} ${repository} (${strings.latest || getString('assets.latest')})` : `${strings.assetsIn || getString('assets.assetsIn')} ${repository} (${releaseTag})`}

{assets.length === 0 && (

{strings.noAssetsInRelease || getString('assets.noAssets')}

)} {assets.map((asset) => { const isSelected = selectedAsset?.id === asset.id return ( handleCardClick(asset)} >
{asset.name}
{formatFileSize(asset.size)} • {asset.content_type}
{isSelected && ( )}
) })}
) }