From 4e50e27fcd8df244453fe0388fc55c4232d20727 Mon Sep 17 00:00:00 2001 From: syntaxbullet Date: Mon, 22 Jun 2026 13:06:44 +0200 Subject: [PATCH] feat: manage network partner logo defaults --- src/collections/Pages/netzwerkFields.ts | 1 + src/payload-types.ts | 2 ++ src/spa/netzwerkContent.ts | 1 + src/spa/pages/Netzwerk.tsx | 8 ++++++-- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/collections/Pages/netzwerkFields.ts b/src/collections/Pages/netzwerkFields.ts index 3186458..d372a10 100644 --- a/src/collections/Pages/netzwerkFields.ts +++ b/src/collections/Pages/netzwerkFields.ts @@ -221,6 +221,7 @@ export const netzwerkFields: Field[] = [ textarea('description', 'Description', netzwerkContent.partners.description), text('detailLabel', 'Detail label', netzwerkContent.partners.detailLabel), text('premiumLabel', 'Premium label', netzwerkContent.partners.premiumLabel), + text('defaultLogoColor', 'Default logo color', netzwerkContent.partners.defaultLogoColor), { name: 'tiers', label: 'Tiers', diff --git a/src/payload-types.ts b/src/payload-types.ts index f1f46a0..c2c9bdb 100644 --- a/src/payload-types.ts +++ b/src/payload-types.ts @@ -1794,6 +1794,7 @@ export interface Page { description?: string | null; detailLabel?: string | null; premiumLabel?: string | null; + defaultLogoColor?: string | null; tiers?: | { tier?: number | null; @@ -4665,6 +4666,7 @@ export interface PagesSelect { description?: T; detailLabel?: T; premiumLabel?: T; + defaultLogoColor?: T; tiers?: | T | { diff --git a/src/spa/netzwerkContent.ts b/src/spa/netzwerkContent.ts index c7aca37..9ee26df 100644 --- a/src/spa/netzwerkContent.ts +++ b/src/spa/netzwerkContent.ts @@ -124,6 +124,7 @@ export const netzwerkContent = { description: 'Partner in drei Kategorien: Hauptsponsoren, Medienpartner und weitere Sponsoren. Klicken für Details.', detailLabel: 'Details', premiumLabel: 'Premium', + defaultLogoColor: '#111D55', tiers: [ { tier: 1, label: 'Hauptsponsoren', note: 'Premium' }, { tier: 2, label: 'Medienpartner', note: '' }, diff --git a/src/spa/pages/Netzwerk.tsx b/src/spa/pages/Netzwerk.tsx index 3681178..2aead64 100644 --- a/src/spa/pages/Netzwerk.tsx +++ b/src/spa/pages/Netzwerk.tsx @@ -166,7 +166,7 @@ const JuryChairCard: React.FC<{ member: JuryMember; badge: string }> = ({ member // ── SponsorCell (tiered) ────────────────────────────────────────────────────── function PartnerLogo({ partner }: { partner: Partner }) { - const color = fallbackText(partner.logoColor, '#111D55'); + const color = fallbackText(partner.logoColor, netzwerkContent.partners.defaultLogoColor); const text = fallbackText(partner.logoText, partner.name); const subtext = fallbackText(partner.logoSubtext, ''); @@ -454,7 +454,11 @@ const Netzwerk: React.FC = () => { const patronPeople = fallbackArray(patronage.people, netzwerkContent.patronage.people); const juryMembers = fallbackArray(jury.members, netzwerkContent.jury.members); const expertiseRows = fallbackArray(expertise.rows, netzwerkContent.expertise.rows); - const partners = fallbackArray(partnerSection.items, netzwerkContent.partners.items as Partner[]); + const defaultLogoColor = fallbackText(partnerSection.defaultLogoColor, netzwerkContent.partners.defaultLogoColor); + const partners = fallbackArray(partnerSection.items, netzwerkContent.partners.items as Partner[]).map((partner) => ({ + ...partner, + logoColor: fallbackText(partner.logoColor, defaultLogoColor), + })); const partnerTiers = fallbackArray(partnerSection.tiers, netzwerkContent.partners.tiers); const mobileStats = fallbackArray(juryIntro.stats, netzwerkContent.juryIntro.stats); const desktopStats = fallbackArray(juryIntro.desktopStats, netzwerkContent.juryIntro.desktopStats);