Files
Reem-Notas/app/javascript/controllers/ferramentas_controller.js

31 lines
902 B
JavaScript

// app/javascript/controllers/ferramentas_controller.js
// Stimulus — "caixa de ferramentas": um botão que abre um menu suspenso com as
// ações de lançamento (registrar entrega manual, entrega de termo). Cada item do
// menu dispara o modal correspondente (controllers apontamento-manual /
// apontamento-termo, que vivem no mesmo elemento pai).
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
static targets = ["menu"]
connect() {
// Fecha o menu ao clicar fora dele.
this._fora = (e) => { if (!this.element.contains(e.target)) this.fechar() }
document.addEventListener("click", this._fora)
}
disconnect() {
document.removeEventListener("click", this._fora)
}
toggle(event) {
event.stopPropagation()
this.menuTarget.classList.toggle("hidden")
}
fechar() {
this.menuTarget.classList.add("hidden")
}
}