Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4915 | Rev 5128 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4250 stevensc 1
/* eslint-disable react/prop-types */
2
import React, { useEffect, useState } from "react";
3
import NavLinks from "./nav-links/NavLinks";
4263 stevensc 4
import ChatHelper from "../../../chat/chatHelper/ChatHelper";
4250 stevensc 5
import UserImageDropdown from "./user-dropdown/UserImageDropdown";
6
import SearchInput from "./searchbox/SearchInput";
7
import ResponsiveNavbar from "./responsive-navbar/ResponsiveNavbar";
8
 
9
const Navbar = ({ navbarVars }) => {
10
 
11
  const {
12
    image,
13
    fullName,
14
    companyVars,
15
    isChatPage,
16
    linkAdmin,
17
    linkImpersonate,
18
    routeCheckSession,
19
    logoForNavbar,
20
    menu: menuProps
21
  } = navbarVars;
22
 
23
  const [navbarOpen, setNavbarOpen] = useState(false);
24
  const [sessionImage, setSessionImage] = useState(null)
25
  const [loading, setLoading] = useState(false);
26
 
27
  useEffect(() => {
28
    let timer;
29
    if (!loading) {
30
      timer = setTimeout(() => checkSessionImage(), 1000);
31
    }
32
    return () => {
33
      clearTimeout(timer);
34
    };
35
  }, [loading])
36
 
37
  const checkSessionImage = async () => {
38
    setLoading(true);
39
    const session_image = sessionStorage.getItem('user_session_image')
40
    if (session_image) {
41
      await setSessionImage(session_image)
42
      sessionStorage.removeItem('user_session_image')
43
    }
44
    setLoading(false);
45
  }
46
 
47
  return (
48
    <>
49
      <nav className='navbar'>
4917 stevensc 50
        <a href="/" className='logo d-none d-xl-block'>
4250 stevensc 51
          <img src={logoForNavbar} alt="logo" />
52
        </a>
53
        <SearchInput />
54
        <div className='hamburgerIcon'>
4913 stevensc 55
          <i className="fa fa-bars text-gray" onClick={() => setNavbarOpen(!navbarOpen)} />
4250 stevensc 56
        </div>
57
        <nav className='navLinksContainer'>
58
          <NavLinks
4335 stevensc 59
            menuData={menuProps}
4250 stevensc 60
            companyVars={companyVars}
61
            sessionLink={routeCheckSession}
62
          />
63
        </nav>
4913 stevensc 64
        <UserImageDropdown
65
          image={image}
66
          fullName={fullName}
67
          linkAdmin={linkAdmin}
68
          linkImpersonate={linkImpersonate}
69
          sessionImage={sessionImage}
70
        />
4250 stevensc 71
      </nav>
72
      <ResponsiveNavbar
73
        show={navbarOpen}
74
        navbarVars={navbarVars}
75
        companyVars={companyVars}
76
        image={image}
77
        fullName={fullName}
78
        linkAdmin={linkAdmin}
79
        linkImpersonate={linkImpersonate}
80
        sessionImage={sessionImage}
81
      />
82
      {window.innerWidth < 1000 && !isChatPage && <ChatHelper />}
83
    </>
84
  )
85
}
86
 
87
export default Navbar