46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
import { Controller } from "@hotwired/stimulus";
|
|
|
|
export default class extends Controller {
|
|
static values = { url: String };
|
|
static targets = ["benefit", "title"];
|
|
|
|
connect() {
|
|
}
|
|
|
|
async fetchData(event) {
|
|
const templateId = event.target.value;
|
|
if (!templateId) {
|
|
this.clearFields();
|
|
return;
|
|
}
|
|
|
|
const url = `/id_card/plans/${templateId}/get_plan_template`
|
|
const response = await fetch(url);
|
|
const templatePlanData = await response.json();
|
|
|
|
this.#updateFields(templatePlanData)
|
|
}
|
|
|
|
clearFields() {
|
|
}
|
|
|
|
async #updateFields(templatePlanData) {
|
|
const titleElement = this.titleTarget
|
|
titleElement.value = templatePlanData.title.match(/^(.*\d)k(?=\d)/i)[0].replace(/(\d)/, ' $1')
|
|
const benefitTargetsList = this.benefitTargets
|
|
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}`);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// this[propertyName]
|
|
// const propertyName = `${valueName}Value`;
|