All files / react/components/Header HeaderAccountMenu.jsx

12.5% Statements 2/16
0% Branches 0/15
0% Functions 0/3
12.5% Lines 2/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89            2x                                                                                                                                                       2x            
import PropTypes from "prop-types";
import { useHeaderState } from "./hooks";
import { setUtagLink } from "./utag-helpers";
import HeaderMenuItem from "./HeaderMenuItem";
import Session from "../Session";
 
const HeaderAccountMenu = ({ handleClick, isDevPre = false }) => {
  const { closeMenus, RouterLink, headerContent } = useHeaderState();
  const { isLoggedIn, firstName, devPreMenuLinks, accountMenuLinks } =
    headerContent;
 
  const isDevPreAndNotAuthenticated = !isLoggedIn && isDevPre;
 
  if (isDevPreAndNotAuthenticated) {
    return null;
  }
 
  // login link
  if (!isLoggedIn) {
    if (RouterLink) {
      return (
        <li onClick={handleClick} className="header-item-login login">
          <RouterLink
            className="menu-link"
            to="/login"
            onClick={() => {
              closeMenus();
              setUtagLink("main navbar", "click", "/login");
            }}
            data-track-category="TopNav"
            data-track-action="click"
            data-track-label="Sign In"
          >
            <div className="nav-title">Sign In</div>
            <div className="nav-description">
              Manage Account <br />
              and Register
            </div>
          </RouterLink>
        </li>
      );
    }
    return (
      <li className="header-item-login login">
        <a
          className="menu-link"
          href="/login"
          data-track-category="TopNav"
          data-track-action="click"
          data-track-label="Sign In"
          onClick={() => {
            setUtagLink("main navbar", "click", "/login");
          }}
        >
          <div className="nav-title">Sign In</div>
          <div className="nav-description">
            Manage Account <br />
            and Register
          </div>
        </a>
      </li>
    );
  }
 
  if (isLoggedIn) {
    return (
      <>
        <Session />
        <HeaderMenuItem
          hasMenu
          menuName="Login"
          name={firstName}
          subtitle="My Account"
          className="account-menu-item"
          columns={isDevPre ? devPreMenuLinks : accountMenuLinks}
          rows={isDevPre ? devPreMenuLinks : accountMenuLinks}
        />
      </>
    );
  }
};
 
HeaderAccountMenu.propTypes = {
  isDevPre: PropTypes.bool,
  handleClick: PropTypes.func.isRequired,
};
 
export default HeaderAccountMenu;