31 lines
902 B
JavaScript
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")
|
|
}
|
|
}
|