feat: frontend alumnos sam-pruebas (RUT+clave, rendir y mis resultados)
This commit is contained in:
commit
e6d283e184
26 files changed
+2555
No files matched your search
@@ -0,0 +1,40 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { apiGet, type Alumno } from "./api";
|
||||
import { useSession } from "./session";
|
||||
|
||||
export * from "./api";
|
||||
|
||||
export interface MiCurso {
|
||||
idCursos: number;
|
||||
nombreCurso: string;
|
||||
}
|
||||
|
||||
/** Cursos con matrícula activa del alumno conectado. */
|
||||
export function useMisCursos() {
|
||||
const { user } = useSession();
|
||||
const [rows, setRows] = useState<Alumno[]>([]);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [error, setError] = useState("");
|
||||
|
||||
useEffect(() => {
|
||||
if (!user) {
|
||||
setLoading(false);
|
||||
return;
|
||||
}
|
||||
setLoading(true);
|
||||
apiGet(`/alumnos?origen=${user.origen}&idAlumno=${encodeURIComponent(user.idAlumno)}`)
|
||||
.then((r: Alumno[]) => {
|
||||
setRows(r);
|
||||
setLoading(false);
|
||||
})
|
||||
.catch((e: any) => {
|
||||
setError(e.message);
|
||||
setLoading(false);
|
||||
});
|
||||
}, [user]);
|
||||
|
||||
const cursos: MiCurso[] = [
|
||||
...new Map(rows.map((r) => [r.idCursos, { idCursos: r.idCursos, nombreCurso: r.nombreCurso }])).values()
|
||||
];
|
||||
return { cursos, rows, loading, error };
|
||||
}
|
||||
Reference in new issue
Block a user