feat: enhance competencia loading logic in DiplomasVista based on tipo_formacion

This commit is contained in:
SirRobert-1 2025-06-13 22:32:53 -06:00
parent 74cb6015dc
commit b6e916c679
1 changed files with 32 additions and 10 deletions

View File

@ -51,16 +51,38 @@ export default function DiplomasVista() {
};
useEffect(() => {
if (alumnoSeleccionado && alumnoSeleccionado.curso?.id) {
supabaseClient
.from("curso_competencia")
.select("competencia(id, descripcion)")
.eq("curso_id", alumnoSeleccionado.curso.id)
.then(({ data }) => {
const comps = data?.map((c) => c.competencia).filter(Boolean) || [];
setCompetencias(comps);
setCompetenciasAcreditadas(comps.map((c) => c.id)); // Opcional: selecciona todas por default
});
if (alumnoSeleccionado) {
if (
alumnoSeleccionado.tipo_formacion === "curso" &&
alumnoSeleccionado.curso?.id
) {
supabaseClient
.from("curso_competencia")
.select("competencia(id, descripcion)")
.eq("curso_id", alumnoSeleccionado.curso.id)
.then(({ data }) => {
const comps = data?.map((c) => c.competencia).filter(Boolean) || [];
setCompetencias(comps);
setCompetenciasAcreditadas(comps.map((c) => c.id));
});
} else if (
alumnoSeleccionado.tipo_formacion === "inyeccion" &&
alumnoSeleccionado.inyeccion?.id
) {
supabaseClient
.from("inyeccion_competencia_inyeccion")
.select("competencia_inyeccion(id, descripcion)")
.eq("inyeccion_id", alumnoSeleccionado.inyeccion.id)
.then(({ data }) => {
const comps =
data?.map((c) => c.competencia_inyeccion).filter(Boolean) || [];
setCompetencias(comps);
setCompetenciasAcreditadas(comps.map((c) => c.id));
});
} else {
setCompetencias([]);
setCompetenciasAcreditadas([]);
}
}
}, [alumnoSeleccionado]);