58 lines
1.6 KiB
TypeScript
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;
|