feat: manage contact page via payload

This commit is contained in:
syntaxbullet
2026-06-22 10:21:05 +02:00
parent d39e696d48
commit ae98269b03
6 changed files with 512 additions and 41 deletions

View File

@@ -415,6 +415,79 @@ export interface Page {
closeLabel?: string | null;
};
};
/**
* Edit the contact page in the same order it appears on the frontend. The generic Hero and Content tabs are hidden for this SPA-managed route.
*/
contact?: {
/**
* Top image, eyebrow, headline, and intro copy.
*/
hero?: {
/**
* Current frontend image: /images/gala-dinner.jpg
*/
backgroundImage?: (number | null) | Media;
imageAlt?: string | null;
eyebrow?: string | null;
heading?: string | null;
description?: string | null;
};
/**
* Left direct-contact list plus the gold contact form panel.
*/
info?: {
eyebrow?: string | null;
heading?: string | null;
items?:
| {
icon?: ('mapPin' | 'mail' | 'phone' | 'clock') | null;
title?: string | null;
lines?: string | null;
id?: string | null;
}[]
| null;
nextAwardLabel?: string | null;
nextAwardDate?: string | null;
/**
* Current frontend image: /images/preistraeger-gruppe.jpg
*/
formImage?: (number | null) | Media;
formImageAlt?: string | null;
formImageLabel?: string | null;
formEyebrow?: string | null;
formTitle?: string | null;
};
/**
* Dark 2026 timeline with three deadline columns.
*/
deadlines?: {
watermark?: string | null;
eyebrow?: string | null;
items?:
| {
step?: string | null;
label?: string | null;
date?: string | null;
desc?: string | null;
id?: string | null;
}[]
| null;
};
/**
* FAQ heading and accordion entries.
*/
faq?: {
eyebrow?: string | null;
heading?: string | null;
items?:
| {
q?: string | null;
a?: string | null;
id?: string | null;
}[]
| null;
};
};
meta?: {
title?: string | null;
/**
@@ -1629,6 +1702,68 @@ export interface PagesSelect<T extends boolean = true> {
closeLabel?: T;
};
};
contact?:
| T
| {
hero?:
| T
| {
backgroundImage?: T;
imageAlt?: T;
eyebrow?: T;
heading?: T;
description?: T;
};
info?:
| T
| {
eyebrow?: T;
heading?: T;
items?:
| T
| {
icon?: T;
title?: T;
lines?: T;
id?: T;
};
nextAwardLabel?: T;
nextAwardDate?: T;
formImage?: T;
formImageAlt?: T;
formImageLabel?: T;
formEyebrow?: T;
formTitle?: T;
};
deadlines?:
| T
| {
watermark?: T;
eyebrow?: T;
items?:
| T
| {
step?: T;
label?: T;
date?: T;
desc?: T;
id?: T;
};
};
faq?:
| T
| {
eyebrow?: T;
heading?: T;
items?:
| T
| {
q?: T;
a?: T;
id?: T;
};
};
};
meta?:
| T
| {