Files
ltbxd-actorle/assets/controllers/dropdown_controller.js
2026-03-29 10:22:37 +02:00

25 lines
630 B
JavaScript

import { Controller } from '@hotwired/stimulus';
export default class extends Controller {
static targets = ['menu', 'trigger'];
connect() {
this._closeOnClickOutside = this._closeOnClickOutside.bind(this);
document.addEventListener('click', this._closeOnClickOutside);
}
disconnect() {
document.removeEventListener('click', this._closeOnClickOutside);
}
toggle() {
this.menuTarget.hidden = !this.menuTarget.hidden;
}
_closeOnClickOutside(event) {
if (!this.element.contains(event.target)) {
this.menuTarget.hidden = true;
}
}
}