import type { CommonProps } from '@/@types/common'
import type { NavigationTree } from '@/@types/navigation'
import type { Direction } from '@/@types/theme'
import { PermissionCheck } from '@/components/shared'
import Dropdown from '@/components/ui/Dropdown'
import Menu from '@/components/ui/Menu'
import { Link } from 'react-router-dom'
import VerticalMenuIcon from './VerticalMenuIcon'
interface DefaultItemProps extends CommonProps {
nav: NavigationTree
onLinkClick?: (link: { key: string; title: string; path: string }) => void
userAuthority: string[]
icon?: string
}
interface CollapsedItemProps extends DefaultItemProps {
direction: Direction
}
interface VerticalCollapsedMenuItemProps extends CollapsedItemProps {
sideCollapsed?: boolean
}
const { MenuItem, MenuCollapse } = Menu
const DefaultItem = ({ nav, onLinkClick }: DefaultItemProps) => {
return (
{nav.title}
>
}
eventKey={nav.key}
expanded={false}
>
{nav.subMenu.map((subNav) => (
))}
)
}
const CollapsedItem = ({ nav, onLinkClick, direction }: CollapsedItemProps) => {
const menuItem = (
)
return (
{nav.subMenu.map((subNav) => (
{subNav.path ? (
onLinkClick?.({
key: subNav.key,
title: subNav.title,
path: subNav.path,
})
}
target={subNav.isExternalLink ? '_blank' : ''}
>
{subNav.title}
) : (
{subNav.title}
)}
))}
)
}
const VerticalCollapsedMenuItem = ({ sideCollapsed, ...rest }: VerticalCollapsedMenuItemProps) => {
return sideCollapsed ? :
}
export default VerticalCollapsedMenuItem