Files
front-AT/app/Components/QuitarSancion/QuitarSancion.tsx
T
2026-02-16 18:47:54 -06:00

58 lines
1.6 KiB
TypeScript

"use client";
import { envConfig } from "@/app/lib/config";
import { useRouter } from "next/navigation";
import { useEffect, useState } from "react";
import { Alumno, AlumnoSancion } from "@/app/types/student";
import TableSanction from "../BitacoraSanciones/TableSanction";
import axios from "axios";
function QuitarSancion({ id_cuenta }: { id_cuenta: number }) {
const [alumno, setAlumno] = useState<Alumno>();
const [alumnoSanciones, setAlumnoSanciones] = useState<AlumnoSancion[]>([]);
const router = useRouter();
useEffect(() => {
if (!id_cuenta) return;
axios
.get(`${envConfig.apiUrl}/alumno-sancion/${id_cuenta}`)
.then((res) => {
setAlumno(res.data.student);
setAlumnoSanciones(
res.data.alusancion?.length ? res.data.alusancion : [],
);
})
.catch((err) => {
const mensaje =
err.response?.data?.message ||
"Error al obtener las sanciones del alumno";
});
}, [id_cuenta]);
const handleButton = (e: React.MouseEvent<HTMLButtonElement>) => {
e.preventDefault();
axios.delete(`${envConfig.apiUrl}/alumno-sancion/${id_cuenta}`)
router.refresh();
}
return (
<section className="containerSection">
<TableSanction alumnoSanciones={alumnoSanciones} alumno={alumno} />
{(alumnoSanciones?.length > 0) &&
<button
className="button buttonSearch"
style={{ margin: "1rem 0" }}
onClick={handleButton}
>
Quitar sancion
</button>
}
</section>
);
}
export default QuitarSancion;