import React from 'react';
import PropTypes from 'prop-types';
import { translate as __ } from 'foremanReact/common/I18n';
import ContentConfig from '../Content/ContentConfig';
const AdditionalCapsuleContent = ({ counts }) => {
const {
deb: debPackageCount = 0,
docker_manifest: dockerManifestCount = 0,
docker_manifest_list: dockerManifestListCount = 0,
docker_tag: dockerTagCount = 0,
file: fileCount = 0,
erratum: errataCount = 0,
package_group: packageGroup = 0,
module_stream: moduleStreamCount = 0,
} = counts;
const contentConfigTypes = ContentConfig.filter(({ names: { capsuleCountLabel } }) =>
!!counts[`${capsuleCountLabel}`])
.map(({
names: {
capsuleCountLabel, pluralLowercase,
},
}) => {
const countParam = `${capsuleCountLabel}`;
const count = counts[countParam];
return {
pluralLowercase,
count,
};
});
return (
<>
{errataCount > 0 &&
<>
{`${errataCount} ${__('Errata')}`}
>
}
{moduleStreamCount > 0 &&
<>
{`${moduleStreamCount} ${__('Module streams')}`}
>
}
{packageGroup > 0 &&
<>
{`${packageGroup} ${__('Package groups')}`}
>
}
{dockerTagCount > 0 &&
<>
{`${dockerTagCount} ${__('Container tags')}`}
>
}
{dockerManifestCount > 0 &&
<>
{`${dockerManifestCount} ${__('Container manifests')}`}
>
}
{dockerManifestListCount > 0 &&
<>
{`${dockerManifestListCount} ${__('Container manifest lists')}`}
>
}
{fileCount > 0 &&
<>
{`${fileCount} ${__('Files')}`}
>
}
{debPackageCount > 0 &&
<>
{`${debPackageCount} ${__('Debian packages')}`}
>}
{contentConfigTypes?.length > 0 &&
contentConfigTypes.map(({ count, pluralLowercase }) => (
{`${count} ${pluralLowercase}`}
))
}
>
);
};
AdditionalCapsuleContent.propTypes = {
counts: PropTypes.shape({
deb: PropTypes.number,
docker_manifest: PropTypes.number,
docker_manifest_list: PropTypes.number,
docker_tag: PropTypes.number,
file: PropTypes.number,
erratum: PropTypes.number,
package_group: PropTypes.number,
module_stream: PropTypes.number,
}),
};
AdditionalCapsuleContent.defaultProps = {
counts: {},
};
export default AdditionalCapsuleContent;