From 580a13f5e2f540fc0391101f87f6a76c45d6b7ae Mon Sep 17 00:00:00 2001 From: syntaxbullet Date: Mon, 22 Jun 2026 12:54:00 +0200 Subject: [PATCH] feat: manage spa loader copy via payload --- src/Header/config.ts | 2 ++ src/payload-types.ts | 4 ++++ src/spa/NextApp.tsx | 7 ++++--- src/spa/cmsNavigation.ts | 4 ++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Header/config.ts b/src/Header/config.ts index 394df0e..a4c7872 100644 --- a/src/Header/config.ts +++ b/src/Header/config.ts @@ -50,6 +50,8 @@ export const Header: GlobalConfig = { { name: 'openLabel', type: 'text', defaultValue: defaultHeaderData.openLabel, required: true }, { name: 'closeLabel', type: 'text', defaultValue: defaultHeaderData.closeLabel, required: true }, { name: 'overviewLabel', type: 'text', defaultValue: defaultHeaderData.overviewLabel, required: true }, + { name: 'loadingBrand', type: 'text', defaultValue: defaultHeaderData.loadingBrand, required: true }, + { name: 'loadingLabel', type: 'text', defaultValue: defaultHeaderData.loadingLabel, required: true }, ], }, { diff --git a/src/payload-types.ts b/src/payload-types.ts index 9151e58..b24487a 100644 --- a/src/payload-types.ts +++ b/src/payload-types.ts @@ -5776,6 +5776,8 @@ export interface Header { openLabel: string; closeLabel: string; overviewLabel: string; + loadingBrand: string; + loadingLabel: string; navItems?: | { /** @@ -5897,6 +5899,8 @@ export interface HeaderSelect { openLabel?: T; closeLabel?: T; overviewLabel?: T; + loadingBrand?: T; + loadingLabel?: T; navItems?: | T | { diff --git a/src/spa/NextApp.tsx b/src/spa/NextApp.tsx index 2b31655..9334d29 100644 --- a/src/spa/NextApp.tsx +++ b/src/spa/NextApp.tsx @@ -4,7 +4,7 @@ import React, { useEffect, useState } from 'react' import Layout from '@/spa/components/layout/Layout' import ScrollToTop from '@/spa/components/layout/ScrollToTop' -import type { SpaFooterData, SpaHeaderData } from '@/spa/cmsNavigation' +import { defaultHeaderData, type SpaFooterData, type SpaHeaderData } from '@/spa/cmsNavigation' import { CmsRouteProvider, type CmsRouteData } from '@/spa/cmsRoute' import About from '@/spa/pages/About' import BlogDetail from '@/spa/pages/BlogDetail' @@ -65,6 +65,7 @@ export default function NextApp({ cmsRoute?: CmsRouteData }) { const [loading, setLoading] = useState(true) + const headerData = header || defaultHeaderData useEffect(() => { const timer = window.setTimeout(() => setLoading(false), 1500) @@ -77,11 +78,11 @@ export default function NextApp({
- BMP + {headerData.loadingBrand}
- Exzellenz wird geladen... + {headerData.loadingLabel}
) diff --git a/src/spa/cmsNavigation.ts b/src/spa/cmsNavigation.ts index d8acf09..fca1e39 100644 --- a/src/spa/cmsNavigation.ts +++ b/src/spa/cmsNavigation.ts @@ -22,6 +22,8 @@ export type SpaHeaderData = { openLabel: string closeLabel: string overviewLabel: string + loadingBrand: string + loadingLabel: string navItems: SpaHeaderNavItem[] secondaryLinks: SpaLink[] socialLinks: SpaSocialLink[] @@ -65,6 +67,8 @@ export const defaultHeaderData: SpaHeaderData = { openLabel: 'Navigation öffnen', closeLabel: 'Menü schließen', overviewLabel: 'Überblick', + loadingBrand: 'BMP', + loadingLabel: 'Exzellenz wird geladen...', languages: ['DE', 'EN'], socialLinks: defaultSocialLinks, navItems: [