mcServerWebsite/app/assets/controllers/mod_optional_controller.js
2026-04-09 15:23:15 +02:00

26 lines
744 B
JavaScript

import { Controller } from '@hotwired/stimulus';
export default class extends Controller {
static targets = ['row'];
connect() {
this.rowTargets.forEach(row => this.#syncRow(row));
}
toggle(event) {
this.#syncRow(event.target.closest('[data-mod-optional-target="row"]'));
}
#syncRow(row) {
const modCheckbox = row.querySelector('[data-mod-checkbox]');
const toggle = row.querySelector('[data-opt-toggle]');
const uiOpt = row.querySelector('[data-ui-opt]');
if (!modCheckbox || !toggle) return;
const checked = modCheckbox.checked;
toggle.classList.toggle('d-none', !checked);
if (!checked && uiOpt) uiOpt.checked = false;
}
}