Rev 4263 | Rev 4915 | 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 NavLinks from "./nav-links/NavLinks";
import ChatHelper from "../../../chat/chatHelper/ChatHelper";
import UserImageDropdown from "./user-dropdown/UserImageDropdown";
import SearchInput from "./searchbox/SearchInput";
import ResponsiveNavbar from "./responsive-navbar/ResponsiveNavbar";
const Navbar = ({ navbarVars }) => {
const {
image,
fullName,
companyVars,
isChatPage,
linkAdmin,
linkImpersonate,
routeCheckSession,
logoForNavbar,
menu: menuProps
} = navbarVars;
const [navbarOpen, setNavbarOpen] = useState(false);
const [sessionImage, setSessionImage] = useState(null)
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);
}
return (
<>
<nav className='navbar'>
<a href="/" className='logo d-none d-md-block'>
<img src={logoForNavbar} alt="logo" />
</a>
<SearchInput />
<div className='hamburgerIcon'>
<i
className="fa fa-bars text-gray"
onClick={() => setNavbarOpen(!navbarOpen)}
/>
</div>
<nav className='navLinksContainer'>
<NavLinks
menuData={menuProps}
companyVars={companyVars}
sessionLink={routeCheckSession}
/>
</nav>
<div className="d-none d-md-block order-4">
<UserImageDropdown
image={image}
fullName={fullName}
linkAdmin={linkAdmin}
linkImpersonate={linkImpersonate}
sessionImage={sessionImage}
/>
</div>
</nav>
<ResponsiveNavbar
show={navbarOpen}
navbarVars={navbarVars}
companyVars={companyVars}
image={image}
fullName={fullName}
linkAdmin={linkAdmin}
linkImpersonate={linkImpersonate}
sessionImage={sessionImage}
/>
{window.innerWidth < 1000 && !isChatPage && <ChatHelper />}
</>
)
}
export default Navbar