--- import { getImage } from 'astro:assets'; import { t, type Lang } from '../../i18n/ui'; import PartnerLogo from './PartnerLogo.astro'; import incubator from '../../assets/partners/xg-incubator.webp'; import aloe from '../../assets/partners/xg-aloe.webp'; import passau from '../../assets/partners/university-of-passau.webp'; interface Props { lang: Lang } const { lang } = Astro.props; const ui = t(lang); /* The partner logos as on ciphercell.de (see PartnerLogo.astro for the two states). `h` balances optical size: the incubator wordmark is long and thin, the other two carry a mark. */ const roles = ui.proof.partnerRoles; const logos = await Promise.all([ { name: 'xG-Incubator', role: roles.incubator, src: incubator, h: 'var(--space-5)' }, { name: 'xG-ALOE', role: roles.aloe, src: aloe, h: 'var(--space-7)' }, { name: lang === 'de' ? 'Universität Passau' : 'University of Passau', role: roles.passau, src: passau, h: 'var(--space-7)' }, ].map(async (l) => ({ ...l, url: (await getImage({ src: l.src, format: 'webp' })).src }))); --- {ui.proof.title} {ui.proof.items.map((p) => ( {p.name} {p.body} ))} {ui.proof.partners} {logos.map((l) => ( ))} {/* Variant B, for comparison: one column per partner across the full width, with its role. Keep one of the two and delete the other. */} {ui.proof.partners} {logos.map((l) => ( {l.name} {l.role} ))}
{p.name}
{p.body}
{ui.proof.partners}
{l.name} {l.role}