export interface LocalizedHtmlContent {
[locale: string]: string;
}
export interface LocalizedTextContent {
[locale: string]: string;
}
export interface StaticPageSeoConfig {
title?: string | LocalizedTextContent;
description?: string | LocalizedTextContent;
keywords?: string;
canonical?: string;
ogTitle?: string | LocalizedTextContent;
ogDescription?: string | LocalizedTextContent;
ogImage?: string;
robots?: string;
}
export interface StaticPageTranslationConfig {
title?: string;
html?: string;
seo?: {
title?: string;
description?: string;
keywords?: string;
canonical?: string;
ogTitle?: string;
ogDescription?: string;
ogImage?: string;
};
}
export interface StaticPageConfig {
id: string;
slug: string;
title: string | LocalizedTextContent;
showInFooter?: boolean;
showInHeader?: boolean;
showInSitemap?: boolean;
icon?: string;
order?: number;
visibility?: {
desktop?: boolean;
tablet?: boolean;
mobile?: boolean;
};
requiresAuthentication?: boolean;
footerGroup?: string;
translations?: Record;
html?: string | LocalizedHtmlContent;
seo?: StaticPageSeoConfig;
visible?: boolean;
route?: string;
content?: LocalizedHtmlContent;
}
export interface LegacyStaticPageConfig {
key: string;
route: string | { path: string; exact?: boolean };
title?: string | LocalizedTextContent;
content?: string | LocalizedHtmlContent | { value?: string; contentType?: string; source?: string };
visible?: boolean;
}
export type StaticPagesConfig = Record | LegacyStaticPageConfig[];
export interface ResolvedStaticPage {
key: string;
id: string;
slug: string;
route: string;
title: string;
html: string;
icon?: string;
requiresAuthentication?: boolean;
seo?: {
title?: string;
description?: string;
keywords?: string;
canonical?: string;
ogTitle?: string;
ogDescription?: string;
ogImage?: string;
robots?: string;
};
}