import Tooltip from '@/components/ui/Tooltip' import Menu from '@/components/ui/Menu' import VerticalMenuIcon from './VerticalMenuIcon' import { Link } from 'react-router-dom' import { Trans, useTranslation } from 'react-i18next' import type { CommonProps } from '@/@types/common' import type { Direction } from '@/@types/theme' import type { NavigationTree } from '@/@types/navigation' import { PermissionCheck } from '@/components/shared' const { MenuItem } = Menu interface CollapsedItemProps extends CommonProps { title: string translateKey: string direction?: Direction } interface DefaultItemProps { nav: NavigationTree onLinkClick?: (link: { key: string; title: string; path: string }) => void sideCollapsed?: boolean userAuthority: string[] icon?: string } interface VerticalMenuItemProps extends CollapsedItemProps, DefaultItemProps {} const CollapsedItem = ({ title, translateKey, children, direction }: CollapsedItemProps) => { const { t } = useTranslation() return ( {children} ) } const DefaultItem = (props: DefaultItemProps) => { const { nav, onLinkClick, sideCollapsed } = props return ( onLinkClick?.({ key: nav.key, title: nav.title, path: nav.path, }) } target={nav.isExternalLink ? '_blank' : ''} > {!sideCollapsed && ( )} ) } const VerticalSingleMenuItem = ({ nav, onLinkClick, sideCollapsed, userAuthority, direction, icon, }: Omit) => { return ( {sideCollapsed ? ( ) : ( )} ) } export default VerticalSingleMenuItem