"use client"; import { useEffect, useState } from "react"; import apiClient from "@/app/lib/apiClient"; import "./registerAlta.css"; import { useRouter } from "next/navigation"; import Swal from "sweetalert2"; type Carrera = { id_carrera: number; carrera: string; }; interface urlProp { numCount: string | null; } export default function RegisterAlta(props: urlProp) { const router = useRouter(); const [listMajor, setListMajor] = useState([]); const [saved, setSaved] = useState(false); const [form, setForm] = useState({ cuenta: String(props.numCount), nombre: "", apellidoP: "", apellidoM: "", email: `${props.numCount}@pcpuma.acatlan.unam.mx`, genero: "", carrera: "", }); useEffect(() => { const fetchCarreras = async () => { try { const response = await apiClient.get("/carrera"); const sorted = response.data.sort((a: Carrera, b: Carrera) => a.carrera.localeCompare(b.carrera), ); setListMajor(sorted); } catch (error) { console.error("Error al obtener carreras:", error); } }; fetchCarreras(); }, []); const handleChange = ( e: React.ChangeEvent, ) => { const { name, value } = e.target; setForm((prev) => ({ ...prev, [name]: value })); }; const isFormComplete = Object.values(form).every( (value) => value.trim() !== "", ); const handleSave = async (e: React.MouseEvent) => { e.preventDefault(); try { const payload = { id_cuenta: Number(form.cuenta), nombre: `${form.apellidoP} ${form.apellidoM} ${form.nombre}`.trim(), correo: form.email || undefined, id_carrera: Number(form.carrera), genero: form.genero || undefined, }; await apiClient.post("/student", payload); setSaved(true); Swal.fire({ title: "Alumno registrado correctamente!", icon: "success", draggable: true, }); } catch (error) { console.error("Error al guardar alumno:", error); Swal.fire({ title: "Error al guardar alumno:!", icon: "error", draggable: true, }); } }; const handleInscripcion = (e: React.MouseEvent) => { e.preventDefault(); router.push(`/Inscripcion?numAcount=${form.cuenta}`); }; return (
); }