Files
openfoodnetwork/app/webpacker/controllers/toggle_control_controller.js
cyrillefr ca4aa645f7 Delete now ununsed stimulus controller toggle_button_disabled
- also delete one comment about replacing this controller with another
2024-01-18 10:10:49 +01:00

41 lines
1.0 KiB
JavaScript

import { Controller } from "stimulus";
export default class extends Controller {
static targets = ["control"];
disableIfPresent(event) {
const input = event.currentTarget;
const disable = !!this.#inputValue(input); // Coerce value to boolean
this.controlTargets.forEach((target) => {
target.disabled = disable;
});
// Focus when enabled
if (!disable) {
this.controlTargets[0].focus();
}
}
enableIfPresent(event) {
const input = event.currentTarget;
const enable = !!this.#inputValue(input);
this.controlTargets.forEach((target) => {
target.disabled = !enable;
});
}
//todo: can a new method toggleDisplay replace ToggleController?
//todo: can toggleDisplay with optional chevron-target replace RemoteToggleController?
// private
// Return input's value, but only if it would be submitted by a form
// Radio buttons not supported (yet)
#inputValue(input) {
if (input.type != "checkbox" || input.checked) {
return input.value;
}
}
}