"use client";

import { usePathname } from "next/navigation";

import ParticipantNavbar from "@/components/pages/participant/participant-navbar";
import { INTERNAL_PAGES } from "@/constants/pages-mapping/internal-pages-mapping";

type NavbarVisibilityControllerProps = {
  email: string;
  firstName: string;
  isLoggedIn: boolean;
  lastName: string;
  userInitials: string;
};

function NavbarVisibilityController({
  userInitials,
  email,
  isLoggedIn,
  firstName,
  lastName,
}: NavbarVisibilityControllerProps) {
  const pathname = usePathname();

  const routesToHideNavbar = [
    INTERNAL_PAGES.participant.forgotPassword,
    INTERNAL_PAGES.participant.resetPassword,
    INTERNAL_PAGES.participant.login,
    INTERNAL_PAGES.participant.signup.main,
    INTERNAL_PAGES.participant.signup.verifyAccount,
    INTERNAL_PAGES.participant.signup.employmentInformation,
    INTERNAL_PAGES.participant.signup.incomeOccupation,
    INTERNAL_PAGES.participant.signup.userInformation,
    INTERNAL_PAGES.participant.signup.thanksForJoining,
    INTERNAL_PAGES.participant.linkedInCallback,
  ];

  const shouldHideNavbarDefault = routesToHideNavbar.some((route) =>
    pathname.startsWith(route)
  );

  const shouldHideNavbar = shouldHideNavbarDefault;

  if (shouldHideNavbar) return null;

  return (
    <ParticipantNavbar
      firstName={firstName}
      isLoggedIn={isLoggedIn}
      lastName={lastName}
      userEmail={email}
      userInitials={userInitials}
    />
  );
}

export default NavbarVisibilityController;
