import { useState } from 'react'
import { Link, useLocation } from 'react-router-dom'
import { Dropdown } from './ui/Dropdown'
import { ChevronDownIcon } from '@heroicons/react/20/solid'
import { Container } from './Container'
import { Button } from './Button'
import pmyceliumLogo from '../images/logos/logo_1.png'
import { Dialog } from '@headlessui/react'
import { Bars3Icon, XMarkIcon } from '@heroicons/react/24/outline'

const cloudNavItems = [
  { name: 'Cloud', href: '/cloud' },
  { name: 'Compute', href: '/compute' },
  { name: 'Storage', href: '/storage' },
  { name: 'GPU', href: '/gpu' },
]

export function Header() {
  const location = useLocation()
  const [mobileMenuOpen, setMobileMenuOpen] = useState(false)

  const getCurrentPageName = () => {
    const currentPath = location.pathname;
    if (currentPath.startsWith('/compute')) return 'Compute';
    if (currentPath.startsWith('/storage')) return 'Storage';
    if (currentPath.startsWith('/gpu')) return 'GPU';
    return 'Cloud';
  };

  return (
    <header className="bg-white">
      <nav className="border-b border-gray-100">
        <Container className="flex bg-transparent justify-between py-4">
          <div className="relative z-10 flex items-center gap-16">
            <Link to="/" aria-label="Home">
              <img src={pmyceliumLogo} alt="Mycelium" className="h-8 w-auto" />
            </Link>
            <div className="hidden lg:flex lg:gap-10">
              <Dropdown
                buttonContent={
                  <>
                    {['Compute', 'Storage', 'GPU'].includes(getCurrentPageName()) ? (
                      <>
                        <span className="text-gray-500">Cloud {' >'} </span>
                        <span>{getCurrentPageName()}</span>
                      </>
                    ) : (
                      'Cloud'
                    )}
                    <ChevronDownIcon className="h-5 w-5" aria-hidden="true" />
                  </>
                }
                items={cloudNavItems}
              />
              <Link
                to="/network"
                className="text-base/7 tracking-tight text-gray-700 hover:text-cyan-500 transition-colors"
              >
                Network
              </Link>
              <Link
                to="/agents"
                className="text-base/7 tracking-tight text-gray-700 hover:text-cyan-500 transition-colors"
              >
                Agents
              </Link>
              <Link
                to="/pods"
                className="text-base/7 tracking-tight text-gray-700 hover:text-cyan-500 transition-colors"
              >
                Pods
              </Link>
            </div>
          </div>
          <div className="flex items-center gap-6">
            <div className="flex items-center gap-6 max-lg:hidden">
              <Button
                to="https://myceliumcloud.tf"
                variant="outline"
                as="a"
                target="_blank"
                rel="noopener noreferrer"
              >
                Deploy Now
              </Button>
              <Button to="/download" variant="solid" color="cyan">
                Get Mycelium Connector
              </Button>
            </div>
            <div className="lg:hidden">
              <button
                type="button"
                className="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 hover:text-cyan-500 transition-colors"
                onClick={() => setMobileMenuOpen(true)}
              >
                <span className="sr-only">Open main menu</span>
                <Bars3Icon className="h-6 w-6" aria-hidden="true" />
              </button>
            </div>
          </div>
        </Container>
      </nav>
      <Dialog as="div" className="lg:hidden" open={mobileMenuOpen} onClose={setMobileMenuOpen}>
        <div className="fixed inset-0 z-10" />
        <Dialog.Panel className="fixed inset-y-0 right-0 z-10 w-full overflow-y-auto lg:bg-transparent lg:bg-transparent bg-white px-6 py-6 sm:max-w-sm sm:ring-1 sm:ring-gray-900/10">
          <div className="flex items-center justify-between">
            <Link to="#" className="-m-1.5 p-1.5">
              <span className="sr-only">Mycelium</span>
              <img
                className="h-8 w-auto"
                src={pmyceliumLogo}
                alt=""
              />
            </Link>
            <button
              type="button"
              className="-m-2.5 rounded-md p-2.5 text-gray-700 hover:text-cyan-500 transition-colors"
              onClick={() => setMobileMenuOpen(false)}
            >
              <span className="sr-only">Close menu</span>
              <XMarkIcon className="h-6 w-6" aria-hidden="true" />
            </button>
          </div>
          <div className="mt-6 flow-root">
            <div className="-my-6 divide-y divide-gray-500/10">
              <div className="space-y-2 py-6">
                {cloudNavItems.map((item) => (
                  <Link
                    key={item.name}
                    to={item.href}
                    className="-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50"
                    onClick={() => setMobileMenuOpen(false)}
                  >
                    {item.name}
                  </Link>
                ))}
                <Link
                  to="/network"
                  className="-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50"
                  onClick={() => setMobileMenuOpen(false)}
                >
                  Network
                </Link>
                <Link
                  to="/agents"
                  className="-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50"
                  onClick={() => setMobileMenuOpen(false)}
                >
                  Agents
                </Link>
                <Link
                  to="/pods"
                  className="-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50"
                  onClick={() => setMobileMenuOpen(false)}
                >
                  Pods
                </Link>
              </div>
              <div className="py-6">
                <Button
                  to="https://myceliumcloud.tf"
                  variant="outline"
                  as="a"
                  target="_blank"
                  rel="noopener noreferrer"
                  className="w-full"
                  onClick={() => setMobileMenuOpen(false)}
                >
                  Start Deployment
                </Button>
                <Button to="/download" variant="solid" color="cyan" className="mt-4 w-full" onClick={() => setMobileMenuOpen(false)}>
                  Get Mycelium Connector
                </Button>
              </div>
            </div>
          </div>
        </Dialog.Panel>
      </Dialog>
    </header>
  )
}
