feat: manage event detail fallback copy via payload
This commit is contained in:
@@ -48,6 +48,7 @@ const getDetailPage = (value: unknown): EventDetailCms => {
|
||||
updateStyles: asStyleMap(detail.updateStyles, eventDetailContent.updateStyles),
|
||||
statusStyles: asStyleMap(detail.statusStyles, eventDetailContent.statusStyles),
|
||||
heroBackLink: { ...eventDetailContent.heroBackLink, ...detail.heroBackLink },
|
||||
fallbackEvent: { ...eventDetailContent.fallbackEvent, ...detail.fallbackEvent },
|
||||
sections: { ...eventDetailContent.sections, ...detail.sections },
|
||||
updatesCopy: { ...eventDetailContent.updates, ...(detail.updatesCopy || detail.updates) },
|
||||
bottomCta: { ...eventDetailContent.bottomCta, ...detail.bottomCta },
|
||||
@@ -98,20 +99,21 @@ export default function EventDetail() {
|
||||
const route = useCmsRoute()
|
||||
const cmsEvent = route?.collection === 'events' ? route.doc : undefined
|
||||
const cmsDetail = getDetailPage(cmsEvent?.detailPage)
|
||||
const fallbackEvent = cmsDetail.fallbackEvent || eventDetailContent.fallbackEvent
|
||||
const eventFallbackImage = mediaUrl(cmsDetail.fallbackImage, `/images/${eventDetailContent.fallbackImageFilename}`)
|
||||
const event = getEventBySlug(slug ?? '') || (cmsEvent ? {
|
||||
slug: String(cmsEvent.slug || slug),
|
||||
title: String(cmsEvent.title || 'Event'),
|
||||
title: String(cmsEvent.title || fallbackEvent.title || eventDetailContent.fallbackEvent.title),
|
||||
subtitle: String(cmsEvent.subtitle || cmsEvent.description || cmsEvent.meta?.description || ''),
|
||||
date: String(cmsEvent.date || 'Termin folgt'),
|
||||
time: String(cmsEvent.time || 'Uhrzeit folgt'),
|
||||
location: String(cmsEvent.location || 'Bayern'),
|
||||
venue: String(cmsEvent.venue || 'Ort folgt'),
|
||||
category: String(cmsEvent.category || 'Event'),
|
||||
status: (cmsEvent.status as BmpEvent['status']) || 'geplant',
|
||||
date: String(cmsEvent.date || fallbackEvent.date || eventDetailContent.fallbackEvent.date),
|
||||
time: String(cmsEvent.time || fallbackEvent.time || eventDetailContent.fallbackEvent.time),
|
||||
location: String(cmsEvent.location || fallbackEvent.location || eventDetailContent.fallbackEvent.location),
|
||||
venue: String(cmsEvent.venue || fallbackEvent.venue || eventDetailContent.fallbackEvent.venue),
|
||||
category: String(cmsEvent.category || fallbackEvent.category || eventDetailContent.fallbackEvent.category),
|
||||
status: ((cmsEvent.status || fallbackEvent.status || eventDetailContent.fallbackEvent.status) as BmpEvent['status']),
|
||||
img: docImageUrl(cmsEvent, eventFallbackImage),
|
||||
description: String(cmsEvent.description || cmsEvent.meta?.description || ''),
|
||||
longDescription: String(cmsEvent.longDescription || cmsEvent.description || cmsEvent.meta?.description || 'Dieses Event wird aus Payload CMS geladen.'),
|
||||
longDescription: String(cmsEvent.longDescription || cmsEvent.description || cmsEvent.meta?.description || fallbackEvent.longDescription || eventDetailContent.fallbackEvent.longDescription),
|
||||
eckdaten: Array.isArray(cmsEvent.eckdaten) ? cmsEvent.eckdaten as EventEckdaten[] : [],
|
||||
updates: Array.isArray(cmsEvent.updates) ? cmsEvent.updates as EventUpdate[] : [],
|
||||
detailPage: cmsEvent.detailPage,
|
||||
|
||||
Reference in New Issue
Block a user