mirror of https://github.com/portainer/portainer
62 lines
1.6 KiB
TypeScript
62 lines
1.6 KiB
TypeScript
import React from 'react';
|
|
|
|
import { FallbackImage } from '@/react/components/FallbackImage';
|
|
|
|
import { Chart } from '../types';
|
|
|
|
import { HelmIcon } from './HelmIcon';
|
|
|
|
interface HelmTemplatesListItemProps {
|
|
model: Chart;
|
|
onSelect: (model: Chart) => void;
|
|
actions?: React.ReactNode;
|
|
}
|
|
|
|
export function HelmTemplatesListItem(props: HelmTemplatesListItemProps) {
|
|
const { model, onSelect, actions } = props;
|
|
|
|
function handleSelect() {
|
|
onSelect(model);
|
|
}
|
|
|
|
return (
|
|
<button
|
|
type="button"
|
|
className="blocklist-item !mx-0 bg-inherit text-start"
|
|
onClick={handleSelect}
|
|
tabIndex={0}
|
|
>
|
|
<div className="blocklist-item-box">
|
|
<span className="shrink-0">
|
|
<FallbackImage
|
|
src={model.icon}
|
|
fallbackIcon={HelmIcon}
|
|
className="blocklist-item-logo h-16 w-auto"
|
|
alt="Helm chart icon"
|
|
/>
|
|
</span>
|
|
|
|
<div className="col-sm-12 flex flex-wrap justify-between gap-2">
|
|
<div className="blocklist-item-line">
|
|
<div>
|
|
<div className="blocklist-item-title">{model.name}</div>
|
|
<div className="small text-muted mt-1">{model.repo}</div>
|
|
</div>
|
|
</div>
|
|
|
|
<span className="blocklist-item-actions">{actions}</span>
|
|
|
|
<div className="blocklist-item-line w-full">
|
|
<span className="blocklist-item-desc">{model.description}</span>
|
|
{model.annotations?.category && (
|
|
<span className="small text-muted">
|
|
{model.annotations.category}
|
|
</span>
|
|
)}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</button>
|
|
);
|
|
}
|