HEX
Server: Apache
System: Linux webm013.cluster123.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: lesanew (165608)
PHP: 8.3.31
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/lesanew/anestetues2/web/app/themes/anes-tetues/resources/js/sections/_header.ts
export {};

const header = document.querySelector<HTMLElement>('.header-scroll');

console.log('Header JS loaded');

if (header) {
  const btnBurger = header.querySelector<HTMLButtonElement>('.burger-btn');
  const content = header.querySelector<HTMLElement>('.header__menu');

  if (btnBurger && content) {
    // ajoute une classe "hidden" à la barre de navigation lorsqu'on scroll (après 150 px et un scroll vers le bas)
    // et la retire lorsqu'on scroll vers le haut
    let lastScrollTop = 0;

    window.addEventListener('scroll', () => {
      const scroll = window.scrollY;

      // Si le menu n'est pas ouvert, on ajoute ou retire la classe hidden en fonction du scroll
      if (!content.classList.contains('show')) {
        if (scroll > lastScrollTop && scroll > 150) {
          header.classList.add('hidden');
        } else {
          header.classList.remove('hidden');
        }
      }

      lastScrollTop = scroll;
    });

    content.addEventListener('click', (event) => {
      const target = event.target as HTMLElement | null;

      if (target && !target.closest('.header__menu__content')) {
        // je ferme le menu
        content.classList.remove('show');
        btnBurger.classList.remove('active');
        document.body.style.overflow = 'visible';
      }
    });

    btnBurger.addEventListener('click', () => {
      // Lorsque le burger est cliqué, on retire la classe "hidden" pour ne pas interférer avec le scroll
      header.classList.remove('hidden');

      content.classList.toggle('show');
      btnBurger.classList.toggle('active');

      if (content.classList.contains('show')) {
        document.body.style.overflow = 'hidden';
      } else {
        document.body.style.overflow = 'visible';
      }
    });

    window.addEventListener('resize', () => {
      if (window.innerWidth >= 1366) {
        content.classList.remove('show');
        btnBurger.classList.remove('active');
        document.body.style.overflow = 'visible';
        header.classList.remove('hidden'); // Enlever la classe hidden sur les grands écrans
      }
    });
  }

  // Gestion du dépliage des sous-menus (mobile + desktop)
  const menu = header.querySelector<HTMLUListElement>('#menu-header');

  if (menu) {
    const submenuItems = menu.querySelectorAll<HTMLLIElement>('.menu-item-has-children');

    submenuItems.forEach((item) => {
      const link = item.querySelector<HTMLAnchorElement>('a');

      if (!link) {
        return;
      }

      link.addEventListener('click', (event) => {
        // Empêche la navigation immédiate pour permettre le dépliage
        event.preventDefault();

        const isOpen = item.classList.toggle('is-open');

        // Optionnel : refermer les autres sous-menus
        if (isOpen) {
          submenuItems.forEach((otherItem) => {
            if (otherItem !== item) {
              otherItem.classList.remove('is-open');
            }
          });
        }
      });
    });
  }
}