"use client"; import { useState, useEffect } from "react"; import styleprograms from "./programas.module.css"; import { envConfig } from "@/app/lib/config"; interface Programa { id_programa: number; programa: string; } export default function Page() { const [modo, setModo] = useState("ver"); const [programaSeleccionado, setProgramaSeleccionado] = useState(""); const [programas, setProgramas] = useState([]); const [nombrePrograma, setNombrePrograma] = useState(""); useEffect(() => { fetch(`${envConfig.apiUrl}/programa/`) .then((res) => res.json()) .then((data) => setProgramas(data)) .catch((error) => console.error("Error al cargar programas:", error)); }, []); const handleInsertar = async () => { if (!nombrePrograma) return; await fetch(`${envConfig.apiUrl}/programa`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ programa: nombrePrograma, }), }); const res = await fetch(`${envConfig.apiUrl}/programa/`); const data = await res.json(); setProgramas(data); setNombrePrograma(""); setModo("ver"); }; const handleGuardar = async () => { if (!programaSeleccionado) return; await fetch(`${envConfig.apiUrl}/programa/${programaSeleccionado}`, { method: "PATCH", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ programa: nombrePrograma, }), }); const res = await fetch(`${envConfig.apiUrl}/programa/`); const data = await res.json(); setProgramas(data); setModo("ver"); }; const handleNuevo = () => setModo("nuevo"); const handleCancelar = () => setModo("ver"); const handleEditar = () => { const programa = programas.find( (p) => p.id_programa === Number(programaSeleccionado), ); if (programa) { setNombrePrograma(programa.programa); setModo("editar"); } }; return (
{modo === "ver" && (

PROGRAMAS

)} {} {modo === "editar" && (

Editar Programa

setNombrePrograma(e.target.value)} placeholder="Nombre del programa" />
)} {} {modo === "nuevo" && (

Nuevo Programa

setNombrePrograma(e.target.value)} placeholder="Coloca el programa" />
)}
); }