diff --git a/src/app/components/generator/GeneratorCard.tsx b/src/app/components/generator/GeneratorCard.tsx index 5c113133..2de41775 100644 --- a/src/app/components/generator/GeneratorCard.tsx +++ b/src/app/components/generator/GeneratorCard.tsx @@ -7,6 +7,8 @@ import { checkVersion } from '../../services/Schemas.js' import { cleanUrl } from '../../Utils.js' import { Badge, Card, Icons, ToolCard } from '../index.js' +const VERSION_SEP = ' • ' + interface Props { id: string, minimal?: boolean, @@ -37,12 +39,21 @@ export function GeneratorCard({ id, minimal }: Props) { .map(v => v.id as VersionId) }, [gen]) + const versionText = useMemo(() => { + if (versions.length <= 5) { + return versions.join(VERSION_SEP) + } + return versions[0] + VERSION_SEP + + '...' + VERSION_SEP + + versions.slice(-3).join(VERSION_SEP) + }, [versions]) + const tags = useMemo(() => { if (gen.tags?.includes('assets')) return ['resource-pack'] return [] }, [gen]) - return {title}{icon && Icons[icon]}} overlay={gen.partner ? locale(`partner.${gen.partner}`) : versions.join(' • ')} link={cleanUrl(gen.url)}> + return {title}{icon && Icons[icon]}} overlay={gen.partner ? locale(`partner.${gen.partner}`) : versionText} link={cleanUrl(gen.url)}> {!gen.noPath &&

/{gen.path ?? gen.id}

} {tags.length > 0 &&
{tags.sort().map(tag => )}