// components/HeaderClient.tsx
"use client";
import React, { useState } from "react";
import Link from "next/link";
import Image from "next/image";
import {
FiChevronDown,
FiClipboard,
FiArrowRight,
FiMenu,
FiX,
FiLogIn,
FiUsers, // Resource Augmentation
FiBriefcase, // Project Management
FiCpu, // Product Development
FiBox, // OBSE
FiFileText, // Vacancies
FiUserCheck, // Recruitment Portal
} from "react-icons/fi";
import ThemeToggle from "./ThemeToggle";
import type { Session } from "@auth/core/types";
const omsLogoUrl = "/oms-logo.svg";
type DropdownMenuProps = {
trigger: React.ReactNode;
children: React.ReactNode;
menuClasses?: string;
};
const DropdownMenu = ({
trigger,
children,
menuClasses = "w-48",
}: DropdownMenuProps) => (
);
type DropdownLinkProps = {
href: string;
children: React.ReactNode;
onClick?: () => void;
};
const DropdownLink = ({ href, children, onClick }: DropdownLinkProps) => (
{children}
);
type HeaderClientProps = {
session: Session | null;
handleSignIn: () => void;
handleSignOut: () => void;
};
const HeaderClient = ({
session,
handleSignIn,
handleSignOut,
}: HeaderClientProps) => {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const toggleMenu = () => setIsMenuOpen((open) => !open);
const handleMobileLinkClick = () => setIsMenuOpen(false);
const megaMenuTriggerClasses = `
relative inline-flex items-center text-sm font-medium text-primary-foreground group
hover:opacity-90 transition-opacity duration-150 ease-in-out pb-1
after:content-[''] after:absolute after:left-0 after:bottom-0 after:h-[2px]
after:w-0 after:bg-primary-foreground/80 after:transition-all after:duration-300 after:ease-out
group-hover:after:w-full group-focus-within:after:w-full
`;
const megaMenuItemClasses = `
flex items-center p-3 -m-3 rounded-lg
hover:bg-secondary transition-colors duration-150 ease-in-out group
`;
const megaMenuIconClasses = `flex-shrink-0 h-6 w-6 text-primary group-hover:text-primary-focus mr-4`;
const megaMenuTextWrapperClasses = `text-sm`;
const megaMenuTitleClasses = `font-semibold text-card-foreground`;
return (
{/* Top Row */}
Owethu Managed Services
Request OBSE Demo
{session?.user ? (
{session.user.name?.split(" ")[0]}
}
>
) : (
)}
{/* Secondary Row w/ Mega Menus */}
{/* ← Here’s the Explore Our Offerings link, back in its original spot */}
Explore Our Offerings
{/* Mobile Menu */}
);
};
export default HeaderClient;