41 lines
1002 B
TypeScript
41 lines
1002 B
TypeScript
import { Suspense } from "react"
|
|
|
|
import { serverClient } from "@/lib/trpc/server"
|
|
|
|
import LoadingSpinner from "../LoadingSpinner"
|
|
import MainMenu from "./MainMenu"
|
|
import TopMenu from "./TopMenu"
|
|
|
|
import styles from "./header.module.css"
|
|
|
|
export interface HeaderProps {
|
|
languageSwitcher: React.ReactNode
|
|
}
|
|
|
|
export default async function Header({ languageSwitcher }: HeaderProps) {
|
|
const [languages, headerData] = await Promise.all([
|
|
serverClient().contentstack.languageSwitcher.get(),
|
|
serverClient().contentstack.base.header(),
|
|
])
|
|
|
|
if (!languages || !headerData) {
|
|
return null
|
|
}
|
|
|
|
return (
|
|
<header className={styles.header}>
|
|
<Suspense fallback={<LoadingSpinner />}>
|
|
<TopMenu
|
|
languageSwitcher={languageSwitcher}
|
|
topLink={headerData.topLink}
|
|
/>
|
|
<MainMenu
|
|
languageUrls={languages.urls}
|
|
menuItems={headerData.menuItems}
|
|
topLink={headerData.topLink}
|
|
/>
|
|
</Suspense>
|
|
</header>
|
|
)
|
|
}
|