// Imports
import * as Auth from "/services/auth/auth.js";
import * as brand from "/assets/brand/brand.js";
import { AnimateCSS } from "/services/common/common.js";

// local variables
let user;
let menu;

export function mount(mountpoint) {
  const where = document.getElementById(mountpoint);
  window.document.title = brand.windowTitle;
  where.innerHTML = /* HTML */ `
    <div class="navbar-brand">
      <a class="navbar-item is-size-4" href="/"
        ><img src="assets/brand/logo.png" alt="logo" />${brand.navTitle}</a
      >
      <a
        role="button"
        id="navbar-burger"
        class="navbar-burger burger"
        aria-label="menu"
        aria-expanded="false"
      >
        <span aria-hidden="true"></span>
        <span aria-hidden="true"></span>
        <span aria-hidden="true"></span>
      </a>
    </div>
    <div id="navbar-menu" class="navbar-menu"></div>
  `;
  // Hamburger menu
  const burger = document.getElementById("navbar-burger");
  menu = document.getElementById("navbar-menu");
  const openClose = (e) => {
    if (burger.classList.contains("is-active")) {
      AnimateCSS(menu, "slideOutRight", function () {
        menu.classList.remove("is-active");
        burger.classList.remove("is-active");
      });
    } else {
      if (e.srcElement == burger) {
        menu.classList.add("is-active");
        burger.classList.add("is-active");
        AnimateCSS(menu, "slideInRight");
      }
    }
  };
  burger.addEventListener("click", openClose);
  menu.addEventListener("click", openClose);
  CreateMenu();
}

export async function CreateMenu() {
  user = await Auth.GetUser();
  menu.innerHTML = `
        <div class="navbar-start">
          ${
            user === undefined
              ? ``
              : /* HTML */ `
                  <a class="navbar-item" href="#home"
                    ><i class="navbar-menu-icon fas fa-home"></i>Accueil</a
                  >
                  <a class="navbar-item" href="#visualization"
                    ><i class="navbar-menu-icon fas fa-poll"></i>Résultats</a
                  >
                  ${user.role == "ADMIN" || "CAPTURER"
                    ? /* HTML */ `
                        <a class="navbar-item" href="#votes"
                          ><i class="navbar-menu-icon fas fa-vote-yea"></i
                          >Votes</a
                        >
                      `
                    : ""}
                  ${user.role == "ADMIN"
                    ? /* HTML */ `
                        <a class="navbar-item" href="#management"
                          ><i class="navbar-menu-icon fas fa-edit"></i
                          >Gestion</a
                        >
                        <a class="navbar-item" href="#users"
                          ><i class="navbar-menu-icon fas fa-users"></i
                          >Utilisateurs</a
                        >
                      `
                    : ""}
                `
          }
        </div>
        <div class="navbar-end">
          ${
            user === undefined
              ? /* HTML */ `
                  <a class="navbar-item" href="#login"
                    ><i class="navbar-menu-icon fas fa-sign-in-alt"></i
                    >Connexion</a
                  >
                `
              : /* HTML */ `
                  <a class="navbar-item" href="/Logout"
                    ><i class="navbar-menu-icon fas fa-sign-out-alt"></i
                    >Déconnexion</a
                  >
                `
          }
        </div>
     `;
}