"use client";

import React, { useState, useEffect } from "react";
import Link from "next/link";
import { usePathname } from "next/navigation";
import { GENRES, COUNTRIES } from "@/lib/constants";
import SearchBar from "./SearchBar";

export default function Navbar() {
  const pathname = usePathname();
  const [isScrolled, setIsScrolled] = useState(false);

  useEffect(() => {
    const handleScroll = () => {
      setIsScrolled(window.scrollY > 18);
    };

    window.addEventListener("scroll", handleScroll);
    handleScroll();

    return () => window.removeEventListener("scroll", handleScroll);
  }, []);

  const isActive = (path: string) => {
    if (path === "/home") {
      return pathname === "/home";
    }

    return pathname === path || pathname.startsWith(`${path}/`);
  };

  return (
    <nav
      className={`navbar navbar-expand-lg navbar-dark fixed-top cine-navbar ${
        isScrolled ? "scrolled" : ""
      }`}
      style={{ zIndex: 1030 }}
    >
      <div className="container">
        {/* Brand */}
        <Link href="/" className="navbar-brand cine-nav-brand">
          <span className="cine-nav-logo-icon">
            <i className="bi bi-play-fill"></i>
          </span>

          <span className="cine-nav-logo-text">
            <span>Cinefy</span>
            <strong>HD</strong>
          </span>
        </Link>

        {/* Mobile Toggle */}
        <button
          className="navbar-toggler cine-toggler"
          type="button"
          data-bs-toggle="collapse"
          data-bs-target="#navbarContent"
          aria-controls="navbarContent"
          aria-expanded="false"
          aria-label="Toggle navigation"
        >
          <span className="navbar-toggler-icon"></span>
        </button>

        <div className="collapse navbar-collapse" id="navbarContent">
          <ul className="navbar-nav me-auto mb-2 mb-lg-0 align-items-lg-center ms-lg-4 cine-nav-list">
            <li className="nav-item">
              <Link
                href="/home"
                className={`nav-link cine-nav-link ${
                  isActive("/home") ? "active" : ""
                }`}
              >
                Home
              </Link>
            </li>

            <li className="nav-item">
              <Link
                href="/movies"
                className={`nav-link cine-nav-link ${
                  isActive("/movies") ? "active" : ""
                }`}
              >
                Movies
              </Link>
            </li>

            <li className="nav-item">
              <Link
                href="/tv-series"
                className={`nav-link cine-nav-link ${
                  isActive("/tv-series") ? "active" : ""
                }`}
              >
                TV Series
              </Link>
            </li>

            <li className="nav-item">
              <Link
                href="/top-rated"
                className={`nav-link cine-nav-link ${
                  isActive("/top-rated") ? "active" : ""
                }`}
              >
                Top Rated
              </Link>
            </li>

            <li className="nav-item">
              <Link
                href="/popular"
                className={`nav-link cine-nav-link ${
                  isActive("/popular") ? "active" : ""
                }`}
              >
                Popular
              </Link>
            </li>

            {/* Genres */}
            <li className="nav-item dropdown">
              <a
                className="nav-link cine-nav-link dropdown-toggle"
                href="#"
                role="button"
                data-bs-toggle="dropdown"
                aria-expanded="false"
              >
                Genres
              </a>

              <ul className="dropdown-menu dropdown-menu-dark cine-dropdown cine-dropdown-wide">
                <div className="row row-cols-2 g-1 m-0">
                  {GENRES.map((genre) => (
                    <div key={genre.id} className="col">
                      <li>
                        <Link
                          href={`/genre/${genre.id}`}
                          className="dropdown-item cine-dropdown-item"
                        >
                          {genre.name}
                        </Link>
                      </li>
                    </div>
                  ))}
                </div>
              </ul>
            </li>

            {/* Countries */}
            <li className="nav-item dropdown">
              <a
                className="nav-link cine-nav-link dropdown-toggle"
                href="#"
                role="button"
                data-bs-toggle="dropdown"
                aria-expanded="false"
              >
                Countries
              </a>

              <ul className="dropdown-menu dropdown-menu-dark cine-dropdown">
                {COUNTRIES.map((country) => (
                  <li key={country.code}>
                    <Link
                      href={`/country/${country.code.toLowerCase()}`}
                      className="dropdown-item cine-dropdown-item"
                    >
                      {country.name}
                    </Link>
                  </li>
                ))}
              </ul>
            </li>

            <li className="nav-item">
              <Link
                href="/live-tv"
                className={`nav-link cine-nav-link ${
                  isActive("/live-tv") ? "active" : ""
                }`}
              >
                Live TV
              </Link>
            </li>
          </ul>

          {/* Compact Header Search */}
          <div className="cine-nav-search">
            <SearchBar variant="header" />
          </div>
        </div>
      </div>
    </nav>
  );
}