feat: manage network partner logo defaults

This commit is contained in:
syntaxbullet
2026-06-22 13:06:44 +02:00
parent 99a318bbb2
commit 4e50e27fcd
4 changed files with 10 additions and 2 deletions

View File

@@ -221,6 +221,7 @@ export const netzwerkFields: Field[] = [
textarea('description', 'Description', netzwerkContent.partners.description), textarea('description', 'Description', netzwerkContent.partners.description),
text('detailLabel', 'Detail label', netzwerkContent.partners.detailLabel), text('detailLabel', 'Detail label', netzwerkContent.partners.detailLabel),
text('premiumLabel', 'Premium label', netzwerkContent.partners.premiumLabel), text('premiumLabel', 'Premium label', netzwerkContent.partners.premiumLabel),
text('defaultLogoColor', 'Default logo color', netzwerkContent.partners.defaultLogoColor),
{ {
name: 'tiers', name: 'tiers',
label: 'Tiers', label: 'Tiers',

View File

@@ -1794,6 +1794,7 @@ export interface Page {
description?: string | null; description?: string | null;
detailLabel?: string | null; detailLabel?: string | null;
premiumLabel?: string | null; premiumLabel?: string | null;
defaultLogoColor?: string | null;
tiers?: tiers?:
| { | {
tier?: number | null; tier?: number | null;
@@ -4665,6 +4666,7 @@ export interface PagesSelect<T extends boolean = true> {
description?: T; description?: T;
detailLabel?: T; detailLabel?: T;
premiumLabel?: T; premiumLabel?: T;
defaultLogoColor?: T;
tiers?: tiers?:
| T | T
| { | {

View File

@@ -124,6 +124,7 @@ export const netzwerkContent = {
description: 'Partner in drei Kategorien: Hauptsponsoren, Medienpartner und weitere Sponsoren. Klicken für Details.', description: 'Partner in drei Kategorien: Hauptsponsoren, Medienpartner und weitere Sponsoren. Klicken für Details.',
detailLabel: 'Details', detailLabel: 'Details',
premiumLabel: 'Premium', premiumLabel: 'Premium',
defaultLogoColor: '#111D55',
tiers: [ tiers: [
{ tier: 1, label: 'Hauptsponsoren', note: 'Premium' }, { tier: 1, label: 'Hauptsponsoren', note: 'Premium' },
{ tier: 2, label: 'Medienpartner', note: '' }, { tier: 2, label: 'Medienpartner', note: '' },

View File

@@ -166,7 +166,7 @@ const JuryChairCard: React.FC<{ member: JuryMember; badge: string }> = ({ member
// ── SponsorCell (tiered) ────────────────────────────────────────────────────── // ── SponsorCell (tiered) ──────────────────────────────────────────────────────
function PartnerLogo({ partner }: { partner: Partner }) { 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 text = fallbackText(partner.logoText, partner.name);
const subtext = fallbackText(partner.logoSubtext, ''); const subtext = fallbackText(partner.logoSubtext, '');
@@ -454,7 +454,11 @@ const Netzwerk: React.FC = () => {
const patronPeople = fallbackArray<PatronPerson>(patronage.people, netzwerkContent.patronage.people); const patronPeople = fallbackArray<PatronPerson>(patronage.people, netzwerkContent.patronage.people);
const juryMembers = fallbackArray<JuryMember>(jury.members, netzwerkContent.jury.members); const juryMembers = fallbackArray<JuryMember>(jury.members, netzwerkContent.jury.members);
const expertiseRows = fallbackArray<ExpertiseRow>(expertise.rows, netzwerkContent.expertise.rows); const expertiseRows = fallbackArray<ExpertiseRow>(expertise.rows, netzwerkContent.expertise.rows);
const partners = fallbackArray<Partner>(partnerSection.items, netzwerkContent.partners.items as Partner[]); const defaultLogoColor = fallbackText(partnerSection.defaultLogoColor, netzwerkContent.partners.defaultLogoColor);
const partners = fallbackArray<Partner>(partnerSection.items, netzwerkContent.partners.items as Partner[]).map((partner) => ({
...partner,
logoColor: fallbackText(partner.logoColor, defaultLogoColor),
}));
const partnerTiers = fallbackArray<PartnerTier>(partnerSection.tiers, netzwerkContent.partners.tiers); const partnerTiers = fallbackArray<PartnerTier>(partnerSection.tiers, netzwerkContent.partners.tiers);
const mobileStats = fallbackArray<StatItem>(juryIntro.stats, netzwerkContent.juryIntro.stats); const mobileStats = fallbackArray<StatItem>(juryIntro.stats, netzwerkContent.juryIntro.stats);
const desktopStats = fallbackArray<StatItem>(juryIntro.desktopStats, netzwerkContent.juryIntro.desktopStats); const desktopStats = fallbackArray<StatItem>(juryIntro.desktopStats, netzwerkContent.juryIntro.desktopStats);