/* eslint-disable */
// Header — top navigation. Mobile-aware: collapses to a hamburger drawer below 900px.

const SiteHeader = ({ route, setRoute }) => {
  const t = (window.useT && window.useT()) || ((k) => k);
  const [menuOpen, setMenuOpen] = React.useState(false);

  // Close the drawer whenever the route changes (user picked something).
  React.useEffect(() => { setMenuOpen(false); }, [route]);

  // Keep <body> from scrolling while the drawer is open.
  React.useEffect(() => {
    document.body.style.overflow = menuOpen ? 'hidden' : '';
    return () => { document.body.style.overflow = ''; };
  }, [menuOpen]);

  const items = [
    { id: 'home',      label: t('nav_home'),      routeWhenActive: 'home',      target: 'home' },
    { id: 'news',      label: t('nav_news'),      routeWhenActive: 'article',   target: 'article' },
    { id: 'directory', label: t('nav_directory'), routeWhenActive: 'directory', target: 'directory' },
    { id: 'jobs',      label: t('nav_jobs'),      routeWhenActive: 'jobs',      target: 'jobs' },
    { id: 'courses',   label: t('nav_courses'),   routeWhenActive: 'courses',   target: 'courses' },
    { id: 'about',     label: t('nav_about'),     routeWhenActive: 'about',     target: 'home' },
  ];

  const renderNav = () => items.map(it => {
    const active = route === it.routeWhenActive;
    return (
      <a key={it.id} className={active ? 'is-active' : ''} onClick={() => setRoute(it.target)}>
        {it.label}
      </a>
    );
  });

  return (
    <>
      <header className="cbm-header">
        <div className="cbm-header__inner">
          <a className="cbm-header__logo" onClick={() => setRoute('home')} style={{cursor:'pointer', borderBottom:'none'}}>
            <Logo size={30} url={false} />
          </a>
          <nav className="cbm-header__nav">
            {renderNav()}
          </nav>
          <div className="cbm-header__actions">
            <input className="cbm-header__search" placeholder={t('nav_search')} />
            <button className="cbm-btn cbm-btn--gold cbm-header__advertise" onClick={() => setRoute('advertise')}>
              {t('nav_advertise_cta')}
            </button>
            {window.LangSwitcher && <LangSwitcher />}
            <button
              className="cbm-header__burger"
              aria-label={menuOpen ? 'Close menu' : 'Open menu'}
              aria-expanded={menuOpen}
              onClick={() => setMenuOpen(o => !o)}
            >
              <i data-lucide={menuOpen ? 'x' : 'menu'}></i>
            </button>
          </div>
        </div>
      </header>

      {/* Mobile drawer — slides down from the header */}
      <div
        className={'cbm-drawer' + (menuOpen ? ' is-open' : '')}
        onClick={(e) => { if (e.target === e.currentTarget) setMenuOpen(false); }}
      >
        <div className="cbm-drawer__panel" role="dialog" aria-label="Menu">
          <nav className="cbm-drawer__nav">
            {renderNav()}
          </nav>
          <div className="cbm-drawer__search">
            <i data-lucide="search"></i>
            <input placeholder={t('nav_search')} />
          </div>
          <button
            className="cbm-btn cbm-btn--gold cbm-drawer__cta"
            onClick={() => setRoute('advertise')}
          >
            {t('nav_advertise_cta')}
          </button>
        </div>
      </div>
    </>
  );
};

Object.assign(window, { SiteHeader });
