feat(SW-186): implement cms data into new header

This commit is contained in:
Erik Tiekstra
2024-09-03 15:41:49 +02:00
parent bf7d22c728
commit 52fdc1daac
25 changed files with 123 additions and 154 deletions

View File

@@ -12,14 +12,18 @@ import styles from "./navigationMenuItem.module.css"
import type { NavigationMenuItemProps } from "@/types/components/header/navigationMenuItem"
export default function MenuItem({ item, isMobile }: NavigationMenuItemProps) {
const { children, title, href, seeAllLinkText, infoCard } = item
const { submenu, title, link, seeAllLink, card } = item
const [isExpanded, setIsExpanded] = useState(false)
function handleButtonClick() {
setIsExpanded((prev) => !prev)
}
return children?.length ? (
if (!submenu.length && !link) {
return null
}
return submenu.length ? (
<MainMenuButton
onClick={handleButtonClick}
className={`${styles.navigationMenuItem} ${isMobile ? styles.mobile : styles.desktop}`}
@@ -36,7 +40,7 @@ export default function MenuItem({ item, isMobile }: NavigationMenuItemProps) {
</MainMenuButton>
) : (
<Link
href={href}
href={link!.href}
color="burgundy"
className={`${styles.navigationMenuItem} ${isMobile ? styles.mobile : styles.desktop}`}
>

View File

@@ -8,12 +8,20 @@ export default function NavigationMenu({
items,
isMobile,
}: NavigationMenuProps) {
const filteredItems = items.filter(
({ link, submenu }) => submenu.length || link
)
if (!filteredItems.length) {
return null
}
return (
<ul
className={`${styles.navigationMenu} ${isMobile ? styles.mobile : styles.desktop}`}
>
{items.map((item) => (
<li key={item.id} className={styles.item}>
{filteredItems.map((item) => (
<li key={item.title} className={styles.item}>
<NavigationMenuItem isMobile={isMobile} item={item} />
</li>
))}