import { ChevronDown16 } from "@carbon/icons-react"; import classNames from "classnames"; import { Menu } from "config/menu"; import React from "react"; import { useTranslation } from "react-i18next"; import { NavLink } from "react-router-dom"; interface NabarItemProps { item?: Menu; index?: number; } const NavbarItem = (props: NabarItemProps) => { const { item, index } = props; const [translate] = useTranslation(); const [menuItems, setMenuItems] = React.useState({}); const [expanded, setExpand] = React.useState(false); const handleToggleMenu = React.useCallback( (menu: Menu) => (event: any) => { event.preventDefault(); setExpand((expanded) => !expanded); const windowCurrentWidth = window.screen.availWidth; if (windowCurrentWidth <= 995) { setMenuItems({ ...menuItems, [`${translate(`${menu.name}`)}`]: menuItems[`${translate(`${menu.name}`)}`] !== undefined ? !menuItems[`${translate(`${menu.name}`)}`] : true, }); } }, [menuItems, translate] ); const renderMenu = (menu: Menu, key: number, itemType?: string) => { return ( {menu.children ? menu.show && ( <> {itemType === "nav" ? (
{menu.icon} {translate(`${`${menu.name}`}`)}
) : ( <>{translate(`${menu.name}`)} )}
{menu.children.map((item: Menu, index: number) => ( {item.children ? (
<>{renderMenu(item, index)}
) : ( {translate(`${item.name}`)} )}
))}
) : menu.show && ( {translate(`${menu.name}`)} )}
); }; return ( {item.children ? (
  • {renderMenu(item, index, "nav")}
  • ) : ( item.show && (
  • {item.icon} {translate(`${item.name}`)}
  • ) )}
    ); }; export default NavbarItem;