24 lines
643 B
TypeScript
24 lines
643 B
TypeScript
import { resolveCmsRelationships, type CmsRouteDoc } from '@/spa/cmsRoute'
|
|
|
|
const FALLBACK_YEAR = 2025
|
|
const FALLBACK_LIMIT = 8
|
|
|
|
type FallbackWinner = {
|
|
id: string | number
|
|
year?: string | number
|
|
}
|
|
|
|
export function resolveHomeWinners(
|
|
featured: unknown,
|
|
cmsWinners: CmsRouteDoc[],
|
|
fallbackWinners: FallbackWinner[],
|
|
) {
|
|
const selectedWinners = Array.isArray(featured) ? featured : []
|
|
|
|
if (selectedWinners.length) return resolveCmsRelationships(selectedWinners, cmsWinners)
|
|
|
|
return (cmsWinners.length ? cmsWinners : fallbackWinners)
|
|
.filter((winner) => Number(winner.year) === FALLBACK_YEAR)
|
|
.slice(0, FALLBACK_LIMIT)
|
|
}
|