Implementar seleccionar grupos en la tabla de horarios

master
Araozu 2021-03-24 18:27:00 -05:00
parent 93bb41582b
commit d79f44575d
3 changed files with 8 additions and 9 deletions

View File

@ -1,12 +1,11 @@
import { Curso, CursoRaw, Cursos, DatosHorario, DatosHorarioRaw, ListaCursosUsuario } from "../types/DatosHorario"; import { Curso, Cursos, DatosHorario, ListaCursosUsuario } from "../types/DatosHorario";
import { For, createSignal, createMemo, SetStateFunction, batch, untrack } from "solid-js"; import { batch, createMemo, createSignal, For, Match, SetStateFunction, Switch, untrack } from "solid-js";
import { css } from "aphrodite"; import { css } from "aphrodite";
import { estilosGlobales } from "../Estilos"; import { estilosGlobales } from "../Estilos";
import { Tabla } from "./Tabla"; import { Tabla } from "./Tabla";
import { CursosElem } from "./CursosElem"; import { CursosElem } from "./CursosElem";
import { EstadoLayout } from "./ContenedorHorarios"; import { EstadoLayout } from "./ContenedorHorarios";
import { BotonMaxMin } from "./BotonMaxMin"; import { BotonMaxMin } from "./BotonMaxMin";
import { Switch, Match } from "solid-js";
import { useListaCursos } from "./useListaCursos"; import { useListaCursos } from "./useListaCursos";
interface HorariosProps { interface HorariosProps {
@ -58,9 +57,8 @@ export function Horarios(props: HorariosProps) {
let i = 0; let i = 0;
for (const [, curso] of Object.entries(cursos)) { for (const [, curso] of Object.entries(cursos)) {
agregarCursoALista(curso); // El curso devuelto por esta fun. es reactivo
obj[i] = agregarCursoALista(curso);
obj[i] = curso;
i++; i++;
} }
}); });

View File

@ -101,7 +101,6 @@ export function CeldaFila(props: Props) {
const [estabaResaltado, setEstabaResaltado] = createSignal(false); const [estabaResaltado, setEstabaResaltado] = createSignal(false);
const estaSeleccionado = createMemo(() => { const estaSeleccionado = createMemo(() => {
console.log("Seleccionado actualizado")
return datos.datosGrupo.seleccionado; return datos.datosGrupo.seleccionado;
}); });

View File

@ -4,7 +4,7 @@ import { Curso, ListaCursosUsuario } from "../types/DatosHorario";
interface ReturnType { interface ReturnType {
listaCursos: State<ListaCursosUsuario>, listaCursos: State<ListaCursosUsuario>,
setListaCursos: SetStateFunction<ListaCursosUsuario>, setListaCursos: SetStateFunction<ListaCursosUsuario>,
agregarCursoALista: (c: Curso) => void, agregarCursoALista: (c: Curso) => Curso,
eliminarCursosDeLista: () => void eliminarCursosDeLista: () => void
} }
@ -14,14 +14,16 @@ export const useListaCursos = (): ReturnType => {
cursos: [] cursos: []
}); });
const agregarCursoALista = (curso: Curso) => { const agregarCursoALista = (curso: Curso): Curso => {
// Si el horario ya se habia agregado, ocultarlo // Si el horario ya se habia agregado, ocultarlo
const cursoActualIndex = listaCursos.cursos.findIndex(x => x.nombre === curso.nombre); const cursoActualIndex = listaCursos.cursos.findIndex(x => x.nombre === curso.nombre);
if (cursoActualIndex !== -1) { if (cursoActualIndex !== -1) {
setListaCursos("cursos", cursoActualIndex, "oculto", x => !x); setListaCursos("cursos", cursoActualIndex, "oculto", x => !x);
return listaCursos.cursos[cursoActualIndex];
} else { } else {
setListaCursos("cursos", listaCursos.sigIndice, curso); setListaCursos("cursos", listaCursos.sigIndice, curso);
setListaCursos("sigIndice", x => x + 1); setListaCursos("sigIndice", x => x + 1);
return listaCursos.cursos[listaCursos.sigIndice - 1];
} }
}; };