fix: resolve selected winners from populated CMS data

This commit is contained in:
syntaxbullet
2026-07-13 12:19:02 +02:00
parent 818f283e10
commit b0aec7ba94
4 changed files with 38 additions and 21 deletions

View File

@@ -6,7 +6,7 @@ import TestimonialsSection from '@/spa/components/TestimonialsSection'
import MunichSkylineBg from '@/spa/components/ui/munich-skyline-bg'
import Image from '@/spa/components/ui/UnoptimizedImage'
import { mediaAlt, mediaUrl } from '@/spa/cmsMediaField'
import { useCmsCollection, useCmsRoute, type CmsRouteDoc } from '@/spa/cmsRoute'
import { resolveCmsRelationship, useCmsCollection, useCmsRoute, type CmsRouteDoc } from '@/spa/cmsRoute'
import { WINNERS, type Winner } from '@/spa/data/winners'
import { useIsMobile } from '@/spa/hooks/useIsMobile'
import { Link } from '@/spa/router'
@@ -108,17 +108,6 @@ const normalizeWinner = (
}
}
const winnerFromRelationship = (
entry: unknown,
allDocs: CmsRouteDoc[],
placeholderImage: string,
fallbackWinner: typeof aboutContent.highlights.fallbackWinner,
) => {
if (entry && typeof entry === 'object') return normalizeWinner(entry as CmsRouteDoc, placeholderImage, fallbackWinner)
const doc = allDocs.find((item) => String(item.id) === String(entry))
return normalizeWinner(doc, placeholderImage, fallbackWinner)
}
const About: React.FC = () => {
const isMobile = useIsMobile()
const placeholderImage = usePreistraegerPlaceholderImage()
@@ -144,7 +133,7 @@ const About: React.FC = () => {
const highlightWinners = useMemo(() => {
const selected = fallbackArray<unknown>(highlights.selectedWinners, [])
.map((entry) => winnerFromRelationship(entry, cmsWinners, placeholderImage, highlightFallbackWinner))
.map((entry) => normalizeWinner(resolveCmsRelationship(entry, cmsWinners), placeholderImage, highlightFallbackWinner))
.filter((winner): winner is Winner => Boolean(winner))
if (selected.length) return selected.slice(0, 8)