const $ = document.querySelector.bind(document);
const $$ = document.querySelectorAll.bind(document);
const tag = document.createElement.bind(document);
const calcularIMC = (peso, altura) => (peso / altura ** 2).toFixed(2);
const actualizarPaciente = (paciente) => {
let [peso, altura, imc] = [
paciente.querySelector(".info-peso").textContent,
paciente.querySelector(".info-altura").textContent,
paciente.querySelector(".info-imc"),
];
let err = false;
if (peso <= 0 || peso > 500) {
imc.textContent = "Peso no válido";
err = true;
} else if (altura <= 0 || altura > 2.0) {
imc.textContent = "Altura no válida";
err = true;
} else imc.textContent = calcularIMC(peso, altura);
if (err) {
paciente.classList.add("paciente-error");
}
};
for (const paciente of $$(".paciente")) {
actualizarPaciente(paciente);
}
const botonAdicionar = $("#adicionar-paciente");
const formAdicionar = $("form");
const tablaPacientes = $("#tabla-pacientes");
const agregarPaciente = (paciente) => {
let elementoPaciente = tag("tr");
elementoPaciente.classList.add("paciente");
for (const attr in paciente) {
elementoPaciente.appendChild(
(() => {
let td = tag("td");
td.className = `info-${attr}`;
td.textContent = paciente[attr].value;
return td;
})()
);
}
actualizarPaciente(tablaPacientes.appendChild(elementoPaciente));
};
botonAdicionar.addEventListener("click", (event) => {
event.preventDefault();
let { nombre, peso, altura, gordura } = formAdicionar;
agregarPaciente({ nombre, peso, altura, gordura, imc: 0 });
});