import React from "react"; import { uniqueId } from "lodash"; import { ISoftwareTitleVersion } from "interfaces/software"; import TextCell from "components/TableContainer/DataTable/TextCell"; import ReactTooltip from "react-tooltip"; const baseClass = "version-cell"; const generateText = (versions: ISoftwareTitleVersion[] | null) => { if (!versions) { return ; } const text = versions.length !== 1 ? `${versions.length} versions` : versions[0].version; return ; }; const generateTooltip = ( versions: ISoftwareTitleVersion[], tooltipId: string ) => { if (!versions) { return null; } const versionNames = versions.map((version) => version.version); return (

{versionNames.join(", ")}

); }; interface IVersionCellProps { versions: ISoftwareTitleVersion[] | null; } const VersionCell = ({ versions }: IVersionCellProps) => { const tooltipId = uniqueId(); // only one version, no need for tooltip const cellText = generateText(versions); if (!versions) { return <>{cellText}; } const versionTooltip = generateTooltip(versions, tooltipId); return ( <>
{cellText}
{versionTooltip} ); }; export default VersionCell;