import React from "react"; import Box from '@mui/material/Box'; import Toolbar from '@mui/material/Toolbar'; import IconButton from '@mui/material/IconButton'; import Badge from '@mui/material/Badge'; import MenuItem from '@mui/material/MenuItem'; import Menu from '@mui/material/Menu'; import { IoMdMenu, IoMdMore } from "react-icons/io"; import { FaUserCircle } from "react-icons/fa"; import { FiMail } from "react-icons/fi"; import { IoNotificationsOutline } from "react-icons/io5"; import {FiLayers} from "react-icons/fi"; import { Logo, Search, SearchIconWrapper, StyledHeader, StyledInputBase } from "./styles"; import Avatar from "../avatar"; import AvatarImg from "../../assets/images/avatar.jpg"; import { Paper, Typography } from "@mui/material"; import {MdKeyboardArrowDown} from "react-icons/md"; import useMediaQuery from '@mui/material/useMediaQuery'; export interface controls{ id?: string, label?: string, icon?: React.ReactNode, handleControl?: any } export interface menuItems{ id?: string | number, label?: string, icon?: React.ReactNode, handleItem?: any } interface HeaderProps { color?: 'default' | 'inherit' | 'primary' | 'secondary' | 'transparent', enableColorOnDark?: boolean, position?: 'absolute' | 'fixed' | 'relative' | 'static' | 'sticky', sx?: any, searchBar?: boolean, controls?: Array user?: string, menuItems?: Array, logo?: any, avatarImg?: any, handlecallback?: any, navigate?: any } const Header = ({ color, position, enableColorOnDark, sx, searchBar=true,handlecallback,logo,avatarImg,navigate, ...other }: HeaderProps) => { const matches = useMediaQuery('(max-width:900px)'); const [anchorEl, setAnchorEl] = React.useState(null); const [match,setMatch] = React.useState(false); const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React.useState(null); const isMenuOpen = Boolean(anchorEl); const isMobileMenuOpen = Boolean(mobileMoreAnchorEl); const handleProfileMenuOpen = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; const handleMobileMenuClose = () => { setMobileMoreAnchorEl(null); }; const handleMenuClose = () => { setAnchorEl(null); }; const handleCallback = () => { handlecallback() } const handleMobileMenuOpen = () => { setMatch((prev:boolean) => !prev) }; const menuId = 'primary-search-account-menu'; const RenderMenu = ({matches,mobileMoreAnchorEl}:{matches:boolean,mobileMoreAnchorEl?: any}) => { return ( { !matches && <> {other.menuItems?.map((menuitem,index) => {menuitem.icon && menuitem.icon}

{menuitem.label}

)} } { matches && <> { other.controls && other.controls.map((control,index) => {control.icon && control.icon}

{control.label}

) } {other.user} { match && ( {other.menuItems?.map((menuitem,index) => {menuitem.icon && menuitem.icon}

{menuitem.label}

)}
) } }
) } const mobileMenuId = 'primary-search-account-menu-mobile'; return ( {logo} {searchBar && } {other.controls && other.controls.map((control,index) => {control.icon && control.icon} )} {other.user} ) } export default Header;