Rev 4247 | Rev 4251 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { useEffect, useState } from 'react'import SearchIcon from '@mui/icons-material/Search'import HomeIcon from '@mui/icons-material/Home'import SupervisorAccountIcon from '@mui/icons-material/SupervisorAccount'import BusinessCenterIcon from '@mui/icons-material/BusinessCenter'import ChatIcon from '@mui/icons-material/Chat'import NotificationsIcon from '@mui/icons-material/Notifications'import CalendarViewDayIcon from '@mui/icons-material/CalendarViewDay'import HeaderOptions from './HeaderOptions'import './Header.scss'const ICON_OPTIONS = [HomeIcon,SupervisorAccountIcon,BusinessCenterIcon,ChatIcon,NotificationsIcon,CalendarViewDayIcon]const Header = ({ logoForNavbar, menu: menuItems }) => {const [navbarOpen, setNavbarOpen] = useState(false);const [sessionImage, setSessionImage] = useState(null)const [showMobileSearch, setShowMobileSearch] = useState(false)const [loading, setLoading] = useState(false);useEffect(() => {let timer;if (!loading) {timer = setTimeout(() => checkSessionImage(), 1000);}return () => {clearTimeout(timer);};}, [loading])const checkSessionImage = async () => {setLoading(true);const session_image = sessionStorage.getItem('user_session_image')if (session_image) {await setSessionImage(session_image)sessionStorage.removeItem('user_session_image')}setLoading(false);}const handleDisplayMobileSearch = () => {if (window.innerWidth < 768) {setShowMobileSearch(true)}}return (<div className='header'><div className='container'><div className='header__nav'><div className='header__left'><img src={logoForNavbar} alt='Logo' /><divclassName={`header__search ${showMobileSearch && 'show'}`}onClick={handleDisplayMobileSearch}><SearchIcon /><inputtype='text'placeholder='Search'/></div></div><nav className={`header__right ${showMobileSearch && 'd-none'}`}><ul>{menuItems.map((item, index) => {return (<HeaderOptionskey={index}Icon={ICON_OPTIONS[index]}title={item.label}url={item.href}/>)})}</ul></nav></div></div></div>)}export default Header