programasfinish

This commit is contained in:
2026-01-29 12:59:50 -06:00
parent b38a5f1040
commit dd3095d878
+48 -16
View File
@@ -14,6 +14,8 @@ export default function Page() {
const [programaSeleccionado, setProgramaSeleccionado] = useState("");
const [programas, setProgramas] = useState<Programa[]>([]);
const [nombrePrograma, setNombrePrograma] = useState("");
useEffect(() => {
fetch("http://localhost:5000/programa/")
@@ -21,10 +23,43 @@ export default function Page() {
.then((data) => setProgramas(data))
.catch((error) => console.error("Error al cargar programas:", error));
}, []);
const handleGuardar = async () => {
if (!programaSeleccionado) return;
await fetch(
`http://localhost:5000/programa/${programaSeleccionado}`,
{
method: "PATCH",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
programa: nombrePrograma,
}),
}
);
const res = await fetch("http://localhost:5000/programa/");
const data = await res.json();
setProgramas(data);
setModo("ver");
};
const handleNuevo = () => setModo("nuevo");
const handleEditar = () => setModo("editar");
const handleCancelar = () => setModo("ver");
const handleEditar = () => {
const programa = programas.find(
(p) => p.id_programa === Number(programaSeleccionado)
);
if (programa) {
setNombrePrograma(programa.programa);
setModo("editar");
}
};
return (
<section className="containerSection">
@@ -33,9 +68,9 @@ export default function Page() {
{modo === "ver" && (
<section className="containersection">
<h3 className="title">PROGRAMAS</h3>
<label className="label">ID: 2</label>
<label className="label">Programa para seleccionar y editar</label>
<h2>Programa</h2>
<select
value={programaSeleccionado}
@@ -49,6 +84,7 @@ export default function Page() {
</option>
))}
</select>
<div className="margin">
<button
@@ -57,6 +93,7 @@ export default function Page() {
>
Editar
</button>
<button
className={`button buttonSearch ${styleprograms.button}`}
@@ -72,20 +109,15 @@ export default function Page() {
{modo === "editar" && (
<section className="containersection">
<h2 className="title">Editar Programa</h2>
<label className="label">ID: {programaSeleccionado}</label>
<label className="label"> {programaSeleccionado}</label>
<select
value={programaSeleccionado}
onChange={(e) => setProgramaSeleccionado(e.target.value)}
>
<option value="">Elige un programa</option>
{programas.map((programa) => (
<option key={programa.id_programa} value={programa.id_programa}>
{programa.programa}
</option>
))}
</select>
<input
type="text"
value={nombrePrograma}
onChange={(e) => setNombrePrograma(e.target.value)}
placeholder="Nombre del programa"
/>
<div className="margin">
<button className="button buttonSearch">Guardar</button>