Fleet UI: Add truncation to versions cell for 1 version (#30748)

This commit is contained in:
RachelElysia 2025-07-10 13:04:16 -07:00 committed by GitHub
parent 39b1a51229
commit 8d050a94a2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,16 +1,8 @@
import React from "react";
import TextCell from "components/TableContainer/DataTable/TextCell";
import TooltipWrapper from "components/TooltipWrapper";
const generateText = <T extends { version: string }>(versions: T[] | null) => {
if (!versions) {
return <TextCell value="---" grey />;
}
const text =
versions.length !== 1 ? `${versions.length} versions` : versions[0].version;
return <TextCell value={text} italic={versions.length !== 1} />;
};
import TooltipTruncatedTextCell from "components/TableContainer/DataTable/TooltipTruncatedTextCell";
import { DEFAULT_EMPTY_CELL_VALUE } from "utilities/constants";
interface IVersionCellProps<T extends { version: string }> {
versions: T[] | null;
@ -19,12 +11,15 @@ interface IVersionCellProps<T extends { version: string }> {
const VersionCell = <T extends { version: string }>({
versions,
}: IVersionCellProps<T>) => {
// only one version, no need for tooltip
const cellText = generateText(versions);
if (!versions || versions.length <= 1) {
return <>{cellText}</>;
if (!versions || versions.length === 0) {
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(", ")}</>}
@ -33,7 +28,7 @@ const VersionCell = <T extends { version: string }>({
showArrow
underline={false}
>
{cellText}
<TextCell value={`${versions.length} versions`} italic />
</TooltipWrapper>
);
};