import React from "react";
import PropTypes from "prop-types";
import { Link } from "react-router-dom";
import {
Navbar as MTNavbar,
Collapse,
Typography,
Button,
IconButton,
} from "@material-tailwind/react";
import { Bars3Icon, XMarkIcon } from "@heroicons/react/24/outline";
export function Navbar({ brandName, routes, action }) {
const [openNav, setOpenNav] = React.useState(false);
React.useEffect(() => {
window.addEventListener(
"resize",
() => window.innerWidth >= 960 && setOpenNav(false)
);
}, []);
const navList = (
{routes.map(({ name, path, icon }) => (
{icon &&
React.createElement(icon, {
className: "w-[18px] h-[18px] opacity-50 mr-1",
})}
{name}
))}
);
return (
{brandName}
{navList}
{React.cloneElement(action, {
className: "hidden lg:inline-block",
})}
setOpenNav(!openNav)}
>
{openNav ? (
) : (
)}
{navList}
{React.cloneElement(action, {
className: "w-full block lg:hidden",
})}
);
}
Navbar.defaultProps = {
brandName: "Material Tailwind React",
action: (
),
};
Navbar.propTypes = {
brandName: PropTypes.string,
routes: PropTypes.arrayOf(PropTypes.object).isRequired,
action: PropTypes.node,
};
Navbar.displayName = "/src/widgets/layout/navbar.jsx";
export default Navbar;