Files
baclight/app/javascript/controllers/benefits_template_picker_controller.js
T

46 lines
1.2 KiB
JavaScript
Raw Normal View History

2025-11-24 08:22:44 -05:00
import { Controller } from "@hotwired/stimulus";
export default class extends Controller {
static values = { url: String };
2026-04-17 15:35:10 -04:00
static targets = ["benefit", "title"];
connect() {
}
2025-11-24 08:22:44 -05:00
async fetchData(event) {
const templateId = event.target.value;
if (!templateId) {
this.clearFields();
return;
}
2026-04-17 15:35:10 -04:00
const url = `/id_card/plans/${templateId}/get_plan_template`
2025-11-24 08:22:44 -05:00
const response = await fetch(url);
2026-04-17 15:35:10 -04:00
const templatePlanData = await response.json();
2025-11-24 08:22:44 -05:00
2026-04-17 15:35:10 -04:00
this.#updateFields(templatePlanData)
2025-11-24 08:22:44 -05:00
}
clearFields() {
}
2026-04-17 15:35:10 -04:00
async #updateFields(templatePlanData) {
const titleElement = this.titleTarget
titleElement.value = templatePlanData.title.match(/^(.*\d)k(?=\d)/i)[0].replace(/(\d)/, ' $1')
const benefitTargetsList = this.benefitTargets
2026-04-17 15:35:10 -04:00
templatePlanData.plan_benefits.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`;