"use client"; import { useState } from "react"; interface DatosEquipo { titulo: string; opcion: string[]; } // Lista de programas disponibles const programas = [ "3D MAX STUDIO 2014", "ADOBE CREATIVE SUITE", "ARCHICAD 20", "AUDACITY -win - 2.0", "AUTOCAD", "CODE-BLOCKS", "COREL DRAW", "DEV-C++", "EVIEWS Enterprise", "Google Earth", "INTERNERT", "MAPLE", "MATHEMATICA", "MATLAB", "Maxima", "miktex", "NETBEANS", "OFFICE 2016", "PSeint", "R 3.0.1", "R Studio", "SPPS Statiscs", "STATA 13", "STATGRAOHICS Centurion XVI", ]; // Mapear cada equipo a sus programas (checkboxes que deberían seleccionarse) const caracteristicasPorEquipo: Record = { "Equipo 1": ["3D MAX STUDIO 2014", "AUTOCAD", "MATLAB"], "Equipo 2": ["ADOBE CREATIVE SUITE", "COREL DRAW", "R Studio"], "Equipo 3": ["ARCHICAD 20", "EVIEWS Enterprise", "SPPS Statiscs"], "Equipo 4": ["MATHEMATICA", "MAPLE", "Maxima"], // Agrega más equipos según necesites }; function ProgramSelector({ titulo, opcion }: DatosEquipo) { // Estado del equipo seleccionado const [equipoSeleccionado, setEquipoSeleccionado] = useState(""); // Estado de los checkboxes (programas) const [checkboxes, setCheckboxes] = useState>( programas.reduce((acc, prog) => ({ ...acc, [prog]: false }), {}) ); // Función al cambiar el select const handleChangeEquipo = (e: React.ChangeEvent) => { const equipo = e.target.value; setEquipoSeleccionado(equipo); // Actualizar checkboxes según características del equipo const nuevosCheckboxes: Record = {}; programas.forEach((prog) => { nuevosCheckboxes[prog] = caracteristicasPorEquipo[equipo]?.includes(prog) || false; }); setCheckboxes(nuevosCheckboxes); }; // Guardar cambios (ejemplo) const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); console.log("Equipo:", equipoSeleccionado); console.log( "Programas seleccionados:", Object.keys(checkboxes).filter((p) => checkboxes[p]) ); }; return (
{programas.map((prog) => ( ))}
); } export default ProgramSelector;