chore: fix linting errors and ts bugs.

This commit is contained in:
syntaxbullet
2026-06-17 17:41:21 +02:00
parent 3e04a3c7e3
commit 51494e25a8
41 changed files with 285 additions and 251 deletions

View File

@@ -1,4 +1,4 @@
import type { Media } from '@/payload-types'
import type { Footer, Header, Media } from '@/payload-types'
export type SpaIconName = 'instagram' | 'linkedin' | 'facebook'
export type SpaLink = { label: string; path: string }
@@ -167,29 +167,50 @@ const mediaToSpa = (value: unknown, fallback?: SpaMedia): SpaMedia | undefined =
return fallback
}
export function normalizeHeaderData(header: any): SpaHeaderData {
type HeaderLanguage = string | { label?: string }
type FooterPartnerLogo = {
alt?: string
image?: unknown
}
export function normalizeHeaderData(header?: Partial<Header>): SpaHeaderData {
return {
...defaultHeaderData,
...header,
logo: mediaToSpa(header?.logo, defaultHeaderData.logo),
navItems: header?.navItems?.length ? header.navItems : defaultHeaderData.navItems,
secondaryLinks: header?.secondaryLinks?.length ? header.secondaryLinks : defaultHeaderData.secondaryLinks,
socialLinks: header?.socialLinks?.length ? header.socialLinks : defaultHeaderData.socialLinks,
ctas: header?.ctas?.length ? header.ctas : defaultHeaderData.ctas,
languages: header?.languages?.length ? header.languages.map((item: any) => item.label || item).filter(Boolean) : defaultHeaderData.languages,
navItems: header?.navItems?.length
? (header.navItems as unknown as SpaHeaderNavItem[])
: defaultHeaderData.navItems,
secondaryLinks: header?.secondaryLinks?.length
? (header.secondaryLinks as unknown as SpaLink[])
: defaultHeaderData.secondaryLinks,
socialLinks: header?.socialLinks?.length
? (header.socialLinks as unknown as SpaSocialLink[])
: defaultHeaderData.socialLinks,
ctas: header?.ctas?.length ? (header.ctas as unknown as SpaCtaLink[]) : defaultHeaderData.ctas,
languages: header?.languages?.length
? (header.languages as HeaderLanguage[])
.map((item) => (typeof item === 'string' ? item : item.label))
.filter((label): label is string => Boolean(label))
: defaultHeaderData.languages,
}
}
export function normalizeFooterData(footer: any): SpaFooterData {
export function normalizeFooterData(footer?: Partial<Footer>): SpaFooterData {
return {
...defaultFooterData,
...footer,
logo: mediaToSpa(footer?.logo, defaultFooterData.logo),
ctas: footer?.ctas?.length ? footer.ctas : defaultFooterData.ctas,
linkColumns: footer?.linkColumns?.length ? footer.linkColumns : defaultFooterData.linkColumns,
socialLinks: footer?.socialLinks?.length ? footer.socialLinks : defaultFooterData.socialLinks,
ctas: footer?.ctas?.length ? (footer.ctas as unknown as SpaCtaLink[]) : defaultFooterData.ctas,
linkColumns: footer?.linkColumns?.length
? (footer.linkColumns as unknown as SpaFooterData['linkColumns'])
: defaultFooterData.linkColumns,
socialLinks: footer?.socialLinks?.length
? (footer.socialLinks as unknown as SpaSocialLink[])
: defaultFooterData.socialLinks,
partnerLogos: footer?.partnerLogos?.length
? footer.partnerLogos.map((item: any, index: number) => ({
? (footer.partnerLogos as FooterPartnerLogo[]).map((item, index) => ({
alt: item.alt || defaultFooterData.partnerLogos[index]?.alt || '',
image: mediaToSpa(item.image, defaultFooterData.partnerLogos[index]?.image),
}))