From a5503e8d69231c81a1229dfbf0e1d07856c9bf30 Mon Sep 17 00:00:00 2001 From: Araozu Date: Wed, 24 Mar 2021 12:59:47 -0500 Subject: [PATCH] Implementar seleccionar grupos en la tabla de Mi Horario --- src/ContenedorHorarios/Horarios.tsx | 2 +- src/ContenedorHorarios/MiHorario.tsx | 5 ----- src/ContenedorHorarios/Tabla.tsx | 15 ++++++++------- src/ContenedorHorarios/Tabla/CeldaFila.tsx | 15 +++++++++------ src/types/DatosHorario.ts | 2 +- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/ContenedorHorarios/Horarios.tsx b/src/ContenedorHorarios/Horarios.tsx index de8eaae..df527ac 100755 --- a/src/ContenedorHorarios/Horarios.tsx +++ b/src/ContenedorHorarios/Horarios.tsx @@ -75,7 +75,7 @@ export function Horarios(props: HorariosProps) { anio={anioActual()} idHover={idHover} setIdHover={setIdHover} - setCursosUsuarios={props.setCursosUsuarios} + setCursosUsuarios={() => {}} />
diff --git a/src/ContenedorHorarios/MiHorario.tsx b/src/ContenedorHorarios/MiHorario.tsx index 570586b..7cae1b7 100755 --- a/src/ContenedorHorarios/MiHorario.tsx +++ b/src/ContenedorHorarios/MiHorario.tsx @@ -43,11 +43,6 @@ export function MiHorario(props: MiHorarioProps) { return obj; }); - const claseBotonMostrarDescansos = () => - mostrarDescansos() - ? "ph-check " + css(e.boton) - : "ph-circle " + css(e.boton); - const fnMaximizar = () => props.setEstadoLayout("MaxPersonal"); const fnMinimizar = () => props.setEstadoLayout("Normal"); const estadoActualLayout = () => props.estadoLayout; diff --git a/src/ContenedorHorarios/Tabla.tsx b/src/ContenedorHorarios/Tabla.tsx index 91dabb2..aba9333 100755 --- a/src/ContenedorHorarios/Tabla.tsx +++ b/src/ContenedorHorarios/Tabla.tsx @@ -1,5 +1,5 @@ import { StyleSheet, css } from "aphrodite"; -import { createMemo, createSignal, For, SetStateFunction } from "solid-js"; +import { createEffect, createMemo, createSignal, createState, For, SetStateFunction } from "solid-js"; import { estilosGlobales } from "../Estilos"; import { Cursos, Curso, ListaCursosUsuario } from "../types/DatosHorario"; import { Dia, dias, horas } from "../Store"; @@ -113,8 +113,11 @@ const procesarAnio = (data: Cursos, anio: string, version: number, setCursosUsua id, txt: `${nombreAbreviado} ${grupoStr}`, esLab: false, - seleccionado: false, - fnSeleccionar: () => {} + datosGrupo: grupo, + fnSeleccionar: () => { + /// @ts-ignore + setCursosUsuarios("cursos", indiceCurso, "Teoria", grupoStr, "seleccionado", x => !x); + } }); } } @@ -141,12 +144,10 @@ const procesarAnio = (data: Cursos, anio: string, version: number, setCursosUsua id, txt: `${nombreAbreviado} L${grupoStr}`, esLab: true, - seleccionado: grupo.seleccionado, + datosGrupo: grupo, fnSeleccionar: () => { - /// @ts-ignore - setCursosUsuarios("cursos", parseInt(indiceCurso), "Laboratorio", grupoStr, "seleccionado", true); - console.log("Seleccionando...", indiceCurso); + setCursosUsuarios("cursos", indiceCurso, "Laboratorio", grupoStr, "seleccionado", x => !x); } }); } diff --git a/src/ContenedorHorarios/Tabla/CeldaFila.tsx b/src/ContenedorHorarios/Tabla/CeldaFila.tsx index 3aaa6f8..61b0871 100755 --- a/src/ContenedorHorarios/Tabla/CeldaFila.tsx +++ b/src/ContenedorHorarios/Tabla/CeldaFila.tsx @@ -2,7 +2,7 @@ import { StyleSheet, css } from "aphrodite"; import { estilosGlobales } from "../../Estilos"; import { For, createSignal, createMemo, createEffect, SetStateFunction } from "solid-js"; import { Dia } from "../../Store"; -import { ListaCursosUsuario } from "../../types/DatosHorario"; +import { DatosGrupo, ListaCursosUsuario } from "../../types/DatosHorario"; const e = StyleSheet.create({ celdaComun: { @@ -72,7 +72,7 @@ interface Props { id: string, txt: string, esLab: boolean, - seleccionado: boolean, + datosGrupo: DatosGrupo, fnSeleccionar: () => void }[], idHover: () => string, @@ -100,14 +100,17 @@ export function CeldaFila(props: Props) { const [estabaResaltado, setEstabaResaltado] = createSignal(false); - createEffect(() => { - const seleccionado = datos.seleccionado; - console.log("Cambiado \"seleccionado\":", seleccionado); + const estaSeleccionado = createMemo(() => { + return datos.datosGrupo.seleccionado; }); const clases = createMemo( () => { - const clases = [e.celdaCurso, esLab ? e.celdaCursoLab : e.celdaCursoTeoria]; + const clases = [ + e.celdaCurso, + esLab ? e.celdaCursoLab : e.celdaCursoTeoria, + estaSeleccionado() && estilosGlobales.contenedorCursorActivo + ]; let adicional = ""; const idHoverS = idHover(); if (idHoverS !== "" && id.search(idHoverS) !== -1) { diff --git a/src/types/DatosHorario.ts b/src/types/DatosHorario.ts index b6d4e0f..02d5761 100755 --- a/src/types/DatosHorario.ts +++ b/src/types/DatosHorario.ts @@ -70,7 +70,7 @@ export interface DataProcesada { id: string, txt: string, esLab: boolean, - seleccionado: boolean, + datosGrupo: DatosGrupo, fnSeleccionar: () => void }[] }