package main
// partnerLogosComponent renders a grayscale logo grid that restores colour on hover.
templ partnerLogosComponent(data PartnerLogosData) {
if data.Title != "" {
{ data.Title }
}
if len(data.Logos) > 0 {
for _, logo := range data.Logos {
@partnerLogoTile(logo)
}
} else {
Add partner logos to fill this grid.
}
}
templ partnerLogoTile(logo PartnerLogo) {
if logo.URL != "" {
@partnerLogoImage(logo)
} else {
@partnerLogoImage(logo)
}
}
templ partnerLogoImage(logo PartnerLogo) {
if logo.Image != "" {
} else {
{ partnerInitials(logo.Name) }
}
}
// partnerInitials returns up to two initials for an initials-only fallback tile.
func partnerInitials(name string) string {
if name == "" {
return "?"
}
letters := []rune{}
prevSpace := true
for _, r := range name {
if r == ' ' || r == '-' || r == '_' {
prevSpace = true
continue
}
if prevSpace {
letters = append(letters, r)
prevSpace = false
if len(letters) >= 2 {
break
}
}
}
if len(letters) == 0 {
return "?"
}
return string(letters)
}