1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-20 21:59:38 +02:00
Maybe/app/javascript/controllers/dropdown_controller.js
Konnor Rogers 6254ea9d8a
Prevent duplicate listeners and memory leak (#387)
* Prevent duplicate listeners and memory leak

Signed-off-by: Konnor Rogers <konnor5456@gmail.com>

* Update dropdown_controller.js

Signed-off-by: Konnor Rogers <konnor5456@gmail.com>

---------

Signed-off-by: Konnor Rogers <konnor5456@gmail.com>
2024-02-08 13:37:36 -06:00

23 lines
543 B
JavaScript

import { Controller } from "@hotwired/stimulus"
// Connects to data-controller="dropdown"
export default class extends Controller {
static targets = ["menu"]
toggleMenu(event) {
event.stopPropagation(); // Prevent event from closing the menu immediately
this.menuTarget.classList.toggle("hidden");
}
hideMenu = () => {
this.menuTarget.classList.add("hidden");
}
connect() {
document.addEventListener("click", this.hideMenu);
}
disconnect() {
document.removeEventListener("click", this.hideMenu);
}
}