feat: manage spa loader copy via payload
This commit is contained in:
@@ -50,6 +50,8 @@ export const Header: GlobalConfig = {
|
|||||||
{ name: 'openLabel', type: 'text', defaultValue: defaultHeaderData.openLabel, required: true },
|
{ name: 'openLabel', type: 'text', defaultValue: defaultHeaderData.openLabel, required: true },
|
||||||
{ name: 'closeLabel', type: 'text', defaultValue: defaultHeaderData.closeLabel, required: true },
|
{ name: 'closeLabel', type: 'text', defaultValue: defaultHeaderData.closeLabel, required: true },
|
||||||
{ name: 'overviewLabel', type: 'text', defaultValue: defaultHeaderData.overviewLabel, 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 },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5776,6 +5776,8 @@ export interface Header {
|
|||||||
openLabel: string;
|
openLabel: string;
|
||||||
closeLabel: string;
|
closeLabel: string;
|
||||||
overviewLabel: string;
|
overviewLabel: string;
|
||||||
|
loadingBrand: string;
|
||||||
|
loadingLabel: string;
|
||||||
navItems?:
|
navItems?:
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
@@ -5897,6 +5899,8 @@ export interface HeaderSelect<T extends boolean = true> {
|
|||||||
openLabel?: T;
|
openLabel?: T;
|
||||||
closeLabel?: T;
|
closeLabel?: T;
|
||||||
overviewLabel?: T;
|
overviewLabel?: T;
|
||||||
|
loadingBrand?: T;
|
||||||
|
loadingLabel?: T;
|
||||||
navItems?:
|
navItems?:
|
||||||
| T
|
| T
|
||||||
| {
|
| {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import React, { useEffect, useState } from 'react'
|
|||||||
|
|
||||||
import Layout from '@/spa/components/layout/Layout'
|
import Layout from '@/spa/components/layout/Layout'
|
||||||
import ScrollToTop from '@/spa/components/layout/ScrollToTop'
|
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 { CmsRouteProvider, type CmsRouteData } from '@/spa/cmsRoute'
|
||||||
import About from '@/spa/pages/About'
|
import About from '@/spa/pages/About'
|
||||||
import BlogDetail from '@/spa/pages/BlogDetail'
|
import BlogDetail from '@/spa/pages/BlogDetail'
|
||||||
@@ -65,6 +65,7 @@ export default function NextApp({
|
|||||||
cmsRoute?: CmsRouteData
|
cmsRoute?: CmsRouteData
|
||||||
}) {
|
}) {
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(true)
|
||||||
|
const headerData = header || defaultHeaderData
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const timer = window.setTimeout(() => setLoading(false), 1500)
|
const timer = window.setTimeout(() => setLoading(false), 1500)
|
||||||
@@ -77,11 +78,11 @@ export default function NextApp({
|
|||||||
<div className="relative">
|
<div className="relative">
|
||||||
<div className="w-24 h-24 border-2 border-accent/20 border-t-accent rounded-full animate-spin" />
|
<div className="w-24 h-24 border-2 border-accent/20 border-t-accent rounded-full animate-spin" />
|
||||||
<div className="absolute inset-0 flex items-center justify-center">
|
<div className="absolute inset-0 flex items-center justify-center">
|
||||||
<span className="text-accent font-display font-bold text-2xl">BMP</span>
|
<span className="text-accent font-display font-bold text-2xl">{headerData.loadingBrand}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-8 text-white/40 uppercase tracking-[0.4em] text-[10px] font-bold animate-pulse">
|
<div className="mt-8 text-white/40 uppercase tracking-[0.4em] text-[10px] font-bold animate-pulse">
|
||||||
Exzellenz wird geladen...
|
{headerData.loadingLabel}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ export type SpaHeaderData = {
|
|||||||
openLabel: string
|
openLabel: string
|
||||||
closeLabel: string
|
closeLabel: string
|
||||||
overviewLabel: string
|
overviewLabel: string
|
||||||
|
loadingBrand: string
|
||||||
|
loadingLabel: string
|
||||||
navItems: SpaHeaderNavItem[]
|
navItems: SpaHeaderNavItem[]
|
||||||
secondaryLinks: SpaLink[]
|
secondaryLinks: SpaLink[]
|
||||||
socialLinks: SpaSocialLink[]
|
socialLinks: SpaSocialLink[]
|
||||||
@@ -65,6 +67,8 @@ export const defaultHeaderData: SpaHeaderData = {
|
|||||||
openLabel: 'Navigation öffnen',
|
openLabel: 'Navigation öffnen',
|
||||||
closeLabel: 'Menü schließen',
|
closeLabel: 'Menü schließen',
|
||||||
overviewLabel: 'Überblick',
|
overviewLabel: 'Überblick',
|
||||||
|
loadingBrand: 'BMP',
|
||||||
|
loadingLabel: 'Exzellenz wird geladen...',
|
||||||
languages: ['DE', 'EN'],
|
languages: ['DE', 'EN'],
|
||||||
socialLinks: defaultSocialLinks,
|
socialLinks: defaultSocialLinks,
|
||||||
navItems: [
|
navItems: [
|
||||||
|
|||||||
Reference in New Issue
Block a user