From c363853624da34a6ad6bb51181ba13b5a1b62912 Mon Sep 17 00:00:00 2001 From: Misode Date: Sun, 4 Jun 2023 18:03:25 +0200 Subject: [PATCH] Hide some versions on generator cards --- src/app/components/generator/GeneratorCard.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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 => )}