2025-11-24 08:22:44 -05:00
|
|
|
import { Controller } from "@hotwired/stimulus";
|
|
|
|
|
|
|
|
|
|
export default class extends Controller {
|
|
|
|
|
static values = { url: String };
|
2025-12-03 11:42:15 -05:00
|
|
|
static targets = ["benefit"];
|
|
|
|
|
|
|
|
|
|
connect() {
|
|
|
|
|
}
|
2025-11-24 08:22:44 -05:00
|
|
|
|
|
|
|
|
async fetchData(event) {
|
|
|
|
|
const templateId = event.target.value;
|
|
|
|
|
if (!templateId) {
|
|
|
|
|
this.clearFields();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-13 08:47:13 -04:00
|
|
|
const url = `/id_card/plans/${templateId}/get_plan_benefits`
|
2025-11-24 08:22:44 -05:00
|
|
|
const response = await fetch(url);
|
|
|
|
|
const templateBenefitsData = await response.json();
|
|
|
|
|
|
2025-12-03 11:42:15 -05:00
|
|
|
this.#updateFields(templateBenefitsData)
|
2025-11-24 08:22:44 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
clearFields() {
|
|
|
|
|
}
|
|
|
|
|
|
2025-12-03 11:42:15 -05:00
|
|
|
async #updateFields(templateBenefitsData) {
|
|
|
|
|
const benefitTargetsList = this.benefitTargets
|
|
|
|
|
templateBenefitsData.forEach(function(bene) {
|
|
|
|
|
const targetElement = benefitTargetsList.find(
|
|
|
|
|
(element) => element.dataset.sequence == bene.sequence
|
|
|
|
|
);
|
|
|
|
|
if (targetElement) {
|
|
|
|
|
targetElement.value = bene.benefit;
|
|
|
|
|
} else {
|
|
|
|
|
console.error(`Target not found for sequence: ${bene.sequence}`);
|
|
|
|
|
}
|
2025-11-24 08:22:44 -05:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// this[propertyName]
|
|
|
|
|
// const propertyName = `${valueName}Value`;
|