import { useState } from "react" // nextjs components import Link from "next/link" // @mui material components import Collapse from "@mui/material/Collapse" import MuiLink from "@mui/material/Link" import { Theme } from "@mui/material/styles" // ThreeD Garden components import MDBox from "~/components/mui/MDBox" import MDTypography from "~/components/mui/MDTypography" // ThreeD Garden exampless import DefaultNavbarDropdown from "~/components/elements/Navbars/DefaultNavbar/DefaultNavbarDropdown" // Declaring props types for DefaultNavbarMobile interface Props { routes: any open: any } function DefaultNavbarMobile({ routes, open }: Props): JSX.Element { const [collapse, setCollapse] = useState("") const handleSetCollapse = (name: string) => collapse === name ? setCollapse(false) : setCollapse(name) const renderNavbarItems = routes.map( ({ name, icon, collapse: routeCollapses, href, route, collapse: navCollapse, }: any) => ( handleSetCollapse(name)} href={href} route={route} collapse={Boolean(navCollapse)}> {routeCollapses && routeCollapses.map((item: any) => ( {item.collapse ? ( <> {item.name} {item.collapse.map((el: any) => ( e.preventDefault() : el.route } target={el.href ? "_blank" : ""} rel={el.href ? "noreferrer" : "noreferrer"} minWidth="11.25rem" display="block" variant="button" color="text" textTransform="capitalize" fontWeight="regular" py={0.625} px={2} sx={({ palette: { grey, dark }, borders: { borderRadius }, }: Theme) => ({ borderRadius: borderRadius.md, cursor: "pointer", transition: "all 300ms linear", "&:hover": { backgroundColor: grey[200], color: dark.main, }, })}> {el.name} ))} ) : ( e.preventDefault() : item.route } target={item.href ? "_blank" : ""} rel={item.href ? "noreferrer" : "noreferrer"} sx={({ palette: { grey, dark }, borders: { borderRadius }, }) => ({ borderRadius: borderRadius.md, cursor: "pointer", transition: "all 300ms linear", py: 1, px: 1.625, "&:hover": { backgroundColor: grey[200], color: dark.main, "& *": { color: dark.main, }, }, })}> {item.name} {item.description} )} ))} ) ) return ( {renderNavbarItems} ) } export default DefaultNavbarMobile