Files
2026-02-27 19:52:23 -06:00

64 lines
1.7 KiB
TypeScript

"use client";
import { envConfig } from "@/app/lib/config";
import { useEffect, useState } from "react";
import { GetSancionByStudent } from "@/app/lib/getSancionByStudent";
import { Alumno, AlumnoSancion } from "@/app/types/sanction";
import TableSanction from "../BitacoraSanciones/TableSanction";
import axios from "axios";
import Cookies from "js-cookie";
function QuitarSancion({ id_cuenta }: { id_cuenta: number }) {
const [alumno, setAlumno] = useState<Alumno>();
const [alumnoSanciones, setAlumnoSanciones] = useState<AlumnoSancion[]>([]);
const [loading, setLoading] = useState<boolean>(false)
const fetchAlumnoSanciones = async () => {
try {
const res = await GetSancionByStudent(id_cuenta);
setAlumno(res.student ?? null);
setAlumnoSanciones(res.alusancion ?? []);
} catch {
}
};
useEffect(() => {
if (!id_cuenta) return;
fetchAlumnoSanciones();
}, [id_cuenta]);
const handleButton = async (e: React.MouseEvent<HTMLButtonElement>) => {
e.preventDefault();
const token = Cookies.get("token");
const headers = { Authorization: `Bearer ${token}` };
setLoading(true)
await axios.delete(`${envConfig.apiUrl}/alumno-sancion/${id_cuenta}`, { headers })
setAlumnoSanciones([])
setLoading(false)
}
return (
<section className="containerSection">
<TableSanction alumnoSanciones={alumnoSanciones} alumno={alumno} />
{(alumnoSanciones?.length > 0) &&
<button
className="button buttonSearch"
style={{ margin: "1rem 0" }}
onClick={handleButton}
disabled={loading}
>
Quitar sancion
</button>
}
</section>
);
}
export default QuitarSancion;
//IO