's'
This commit is contained in:
41
components/NavigationItem.tsx
Normal file
41
components/NavigationItem.tsx
Normal file
@@ -0,0 +1,41 @@
|
||||
'use client'
|
||||
|
||||
import { NavigationToggle } from './NavigationToggle'
|
||||
import { NavigationLink } from './NavigationLink'
|
||||
import type { NavigationSubItem } from '@/types/navigation'
|
||||
|
||||
interface NavigationItemProps {
|
||||
id: string
|
||||
title: string
|
||||
icon?: string
|
||||
items?: NavigationSubItem[]
|
||||
}
|
||||
|
||||
export function NavigationItem({ id, title, icon, items = [] }: NavigationItemProps) {
|
||||
if (!items?.length) {
|
||||
return (
|
||||
<li>
|
||||
<NavigationLink href={`#${id}`}>
|
||||
<i className={icon}></i>
|
||||
<span>{title}</span>
|
||||
</NavigationLink>
|
||||
</li>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<li>
|
||||
<NavigationToggle icon={icon} title={title}>
|
||||
<ul>
|
||||
{items.map(subItem => (
|
||||
<li key={subItem.href}>
|
||||
<NavigationLink href={subItem.href}>
|
||||
<span>{subItem.title}</span>
|
||||
</NavigationLink>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</NavigationToggle>
|
||||
</li>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user