import { delegate } from 'tippy.js';
import 'tippy.js/dist/tippy.css';

class PopupMenuComponent {
  static initialize() {
    delegate("body", {
      allowHTML: true,
      interactive: true,
      theme: "common-tooltip",
      target: "a.popup-menu-button",
      placement: "bottom-start",
      trigger: "click",
      touch: "hold",
      animation: null,
      content: PopupMenuComponent.content,
    });

    $(document).on("click.danbooru", ".popup-menu-content", PopupMenuComponent.onMenuItemClicked);
  }

  static content(element) {
    let $content = $(element).parents(".popup-menu").find(".popup-menu-content");
    $content.show();
    return $content.get(0);
  }

  // Hides the menu when a menu item is clicked.
  static onMenuItemClicked(event) {
    let tippy = $(event.target).parents("[data-tippy-root]").get(0)._tippy;
    tippy.hide();
  }
}

$(document).ready(PopupMenuComponent.initialize);

export default PopupMenuComponent;
