import { useTranslation } from "react-i18next"; import { FileCode2 } from "lucide-react"; import { EmptyState } from "@/components/shared/EmptyState"; import { LoadingSpinner } from "@/components/shared/LoadingSpinner"; import { StatusBadge } from "@/components/shared/StatusBadge"; import { Badge } from "@/components/ui/badge"; import type { TeamVersion } from "@/types"; import { formatDateTime, truncateMiddle } from "@/lib/utils"; export function TeamVersions({ versions, loading }: { versions: TeamVersion[]; loading: boolean }) { const { t } = useTranslation(); if (loading) return ; const sorted = [...versions].sort((a, b) => b.version_no - a.version_no); if (!sorted.length) { return ; } return (
{sorted.map((version) => (

v{version.version_no}

{readableLabel(version.coordination_mode)}

{version.objective ?? t("teams.noObjectiveProvided")}

{formatDateTime(version.created_time)}

{t("teams.members")}

{version.member_refs_json.length}

{t("agents.published")}

{version.published_time ? formatDateTime(version.published_time) : t("teams.notPublished")}

{t("teams.versionId")}

{truncateMiddle(version.id, 28)}

))}
); } function readableLabel(value: string) { return value.split(/[_-]+/).filter(Boolean).map((p) => p.charAt(0).toUpperCase() + p.slice(1)).join(" "); }