Files
openfoodnetwork/app/webpacker/controllers/dropdown_controller.js
Jean-Baptiste Bellet d78af187e0 Allow dropdown controller to toggle more than one class
"It's a Surprise Tool That Will Help Us Later"
2023-07-11 10:48:51 +02:00

37 lines
970 B
JavaScript

import { Controller } from "stimulus";
export default class extends Controller {
static targets = ["arrow", "menu"];
connect() {
this.#hide();
}
toggle() {
if (this.menuTarget.classList.contains("hidden")) {
this.#show();
} else {
this.#hide();
}
}
#show() {
this.menuTarget.classList.remove("hidden");
this.arrowTarget.dataset.collapsedClass.split(" ").forEach((className) => {
this.arrowTarget.classList.remove(className);
});
this.arrowTarget.dataset.expandedClass.split(" ").forEach((className) => {
this.arrowTarget.classList.add(className);
});
}
#hide() {
this.menuTarget.classList.add("hidden");
this.arrowTarget.dataset.expandedClass.split(" ").forEach((className) => {
this.arrowTarget.classList.remove(className);
});
this.arrowTarget.dataset.collapsedClass.split(" ").forEach((className) => {
this.arrowTarget.classList.add(className);
});
}
}