"use client";
import Image from "next/image";
import React, { useEffect, ReactNode, useState } from "react";

const Header: React.FC = () => {
  const [isScrolled, setIsScrolled] = useState<boolean>(false);
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState<boolean>(false);

  useEffect(() => {
    const handleScroll = (): void => {
      setIsScrolled(window.scrollY > 50);
    };

    window.addEventListener("scroll", handleScroll);
    return () => window.removeEventListener("scroll", handleScroll);
  }, []);

  return (
    <div className="font-sans">
      {/* Navigation */}
      <nav
        className={`fixed top-0 w-full z-50 transition-all duration-300 ${
          isScrolled
            ? "py-4 bg-white shadow-lg border-b border-gray-100"
            : "py-6 bg-white/95 backdrop-blur-sm"
        }`}
      >
        <div className="max-w-7xl mx-auto px-6">
          <div className="flex items-center justify-between">
            {/* Logo */}
            <div className="flex items-center">
              <Image
                src="/logo1.png"
                alt="Logo"
                width={180}
                height={180}
                className="w-28 md:w-36 h-auto"
              />
            </div>

            {/* Desktop Menu */}
            <div className="hidden md:flex items-center gap-12">
              <NavLink href="/">Home</NavLink>
              <NavLink href="/solution">Solutions</NavLink>
              <NavLink href="/aboutus">About Us</NavLink>
            </div>

            {/* CTA Button */}
            <div className="hidden md:block">
              <a
                href="/contact"
                className="px-6 py-3 bg-[#ffc400] text-[#00057b] font-semibold rounded-lg hover:bg-[#ffcd1a] transition-all duration-300 shadow-md hover:shadow-lg transform hover:-translate-y-0.5"
              >
                Contact Us
              </a>
            </div>

            {/* Mobile Menu Button */}
            <button
              className="md:hidden relative w-10 h-10 flex items-center justify-center"
              onClick={() => setIsMobileMenuOpen((prev) => !prev)}
              aria-label="Toggle menu"
            >
              <div className="flex flex-col gap-1.5">
                <span
                  className={`w-6 h-0.5 bg-[#00057b] transition-all duration-300 ${
                    isMobileMenuOpen ? "rotate-45 translate-y-2" : ""
                  }`}
                />
                <span
                  className={`w-6 h-0.5 bg-[#00057b] transition-all duration-300 ${
                    isMobileMenuOpen ? "opacity-0" : ""
                  }`}
                />
                <span
                  className={`w-6 h-0.5 bg-[#00057b] transition-all duration-300 ${
                    isMobileMenuOpen ? "-rotate-45 -translate-y-2" : ""
                  }`}
                />
              </div>
            </button>
          </div>
        </div>

        {/* Mobile Menu */}
        <div
          className={`md:hidden fixed top-[88px] left-0 w-full bg-white border-t border-gray-100 shadow-lg transition-all duration-300 ${
            isMobileMenuOpen
              ? "opacity-100 translate-y-0"
              : "opacity-0 -translate-y-4 pointer-events-none"
          }`}
        >
          <div className="max-w-7xl mx-auto px-6 py-6">
            <ul className="flex flex-col gap-4">
              <li>
                <MobileNavLink
                  href="/"
                  onClick={() => setIsMobileMenuOpen(false)}
                >
                  Home
                </MobileNavLink>
              </li>
              <li>
                <MobileNavLink
                  href="/solution"
                  onClick={() => setIsMobileMenuOpen(false)}
                >
                  Solutions
                </MobileNavLink>
              </li>
              <li>
                <MobileNavLink
                  href="/about"
                  onClick={() => setIsMobileMenuOpen(false)}
                >
                  About
                </MobileNavLink>
              </li>
              <li className="pt-2">
                <a
                  href="/contact"
                  className="block w-full text-center px-6 py-3 bg-[#ffc400] text-[#00057b] font-semibold rounded-lg"
                  onClick={() => setIsMobileMenuOpen(false)}
                >
                  Contact Us
                </a>
              </li>
            </ul>
          </div>
        </div>
      </nav>

      
    </div>
  );
};

export default Header;

/* ---------------- COMPONENTS ---------------- */

interface NavLinkProps {
  href: string;
  children: ReactNode;
}

const NavLink: React.FC<NavLinkProps> = ({ href, children }) => (
  <a
    href={href}
    className="text-gray-700 font-medium text-base hover:text-[#00057b] transition-colors duration-200 relative group"
  >
    {children}
    <span className="absolute bottom-0 left-0 w-0 h-0.5 bg-[#ffc400] transition-all duration-300 group-hover:w-full" />
  </a>
);

interface MobileNavLinkProps {
  href: string;
  children: ReactNode;
  onClick: () => void;
}

const MobileNavLink: React.FC<MobileNavLinkProps> = ({
  href,
  children,
  onClick,
}) => (
  <a
    href={href}
    className="block py-3 px-4 text-gray-700 font-medium text-lg hover:text-[#00057b] hover:bg-gray-50 rounded-lg transition-all duration-200"
    onClick={onClick}
  >
    {children}
  </a>
);
