"use client"; import { useEffect, useState } from "react"; import axios from "axios"; import toast from "react-hot-toast"; import { envConfig } from "@/app/lib/config"; interface Alumno { id_cuenta: number; nombre: string; credito: number; } interface Sancion { id_sancion: number; sancion: string; duracion: number; } interface AlumnoSancion { id_alumno_sancion: number; fecha_inicio: string; sancion: Sancion; } if (!envConfig.apiUrl) { console.error("API URL is not defined in envConfig"); } export default function TableSancion({ idCuenta }: { idCuenta: number }) { const [sanciones, setSanciones] = useState([]); const [alumno, setAlumno] = useState(null); const [alumnoSanciones, setAlumnoSanciones] = useState([]); const [selectedSancion, setSelectedSancion] = useState(""); useEffect(() => { if (!idCuenta) return; axios .get(`${envConfig.apiUrl}/alumno-sancion/${idCuenta}`) .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"; toast.error(mensaje); }); // Obtener catálogo de sanciones axios .get(`${envConfig.apiUrl}/sancion`) .then((res) => setSanciones(res.data)) .catch((err) => toast.error("Error al obtener el catálogo de sanciones:", err), ); }, [idCuenta]); const calcularFechaFin = (fechaInicio: string, duracionSemanas: number) => { const fecha = new Date(fechaInicio); fecha.setDate(fecha.getDate() + duracionSemanas * 7); return fecha.toLocaleDateString(); }; return ( <>
{alumnoSanciones.length > 0 ? ( alumnoSanciones.map((item) => ( )) ) : ( )}
Cuenta Motivo de la sanción Duración (Semanas) Fecha Sanción Podrá utilizar el servicio hasta
{alumno?.id_cuenta} {item.sancion.sancion} {item.sancion.duracion} {new Date(item.fecha_inicio).toLocaleDateString()} {calcularFechaFin(item.fecha_inicio, item.sancion.duracion)}
No hay sanciones registradas
); }