mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 09:28:54 +00:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import React from "react";
|
|
import TextCell from "components/TableContainer/DataTable/TextCell";
|
|
import TooltipWrapper from "components/TooltipWrapper";
|
|
import TooltipTruncatedTextCell from "components/TableContainer/DataTable/TooltipTruncatedTextCell";
|
|
import { DEFAULT_EMPTY_CELL_VALUE } from "utilities/constants";
|
|
|
|
interface IVersionCellProps<T extends { version: string }> {
|
|
versions: T[] | null;
|
|
}
|
|
|
|
const VersionCell = <T extends { version: string }>({
|
|
versions,
|
|
}: IVersionCellProps<T>) => {
|
|
if (!versions || versions.length === 0 || versions[0].version === "") {
|
|
return <TextCell value={DEFAULT_EMPTY_CELL_VALUE} grey />;
|
|
}
|
|
|
|
if (versions.length === 1) {
|
|
return <TooltipTruncatedTextCell value={versions[0].version} />;
|
|
}
|
|
|
|
// Multiple versions: show count, tooltip with versions list
|
|
return (
|
|
<TooltipWrapper
|
|
tipContent={<>{versions.map((version) => version.version).join(", ")}</>}
|
|
tipOffset={14}
|
|
position="top"
|
|
showArrow
|
|
underline={false}
|
|
>
|
|
<TextCell value={`${versions.length} versions`} italic />
|
|
</TooltipWrapper>
|
|
);
|
|
};
|
|
|
|
export default VersionCell;
|