// retoor <retoor@molodetz.nl>
export class ProjectActionsMenu {
constructor(root) {
this.root = root;
this.trigger = root.querySelector(".project-actions-more");
this.overflow = root.querySelector(".project-actions-overflow");
if (!this.trigger || !this.overflow) {
return;
}
if (!this.overflow.querySelector("[data-menu-action]")) {
this.trigger.hidden = true;
return;
}
this.trigger.addEventListener("click", (event) => this.open(event));
}
open(event) {
event.preventDefault();
event.stopPropagation();
const items = Array.from(
this.overflow.querySelectorAll("[data-menu-action]")
).map((element) => ({
icon: element.dataset.menuIcon || "",
label: element.dataset.menuLabel || element.textContent.trim(),
danger: element.hasAttribute("data-confirm-danger"),
onSelect: () => element.click(),
}));
const rect = this.trigger.getBoundingClientRect();
window.app.contextMenu.open(rect.left, rect.bottom + 4, items);
}
}