diff --git a/src/ContenedorHorarios/Horarios.tsx b/src/ContenedorHorarios/Horarios.tsx index 3c2c76a..80de21b 100644 --- a/src/ContenedorHorarios/Horarios.tsx +++ b/src/ContenedorHorarios/Horarios.tsx @@ -7,7 +7,7 @@ import { horas } from "../Store"; export function Horarios(props: { data: DatosHorario }) { - const [anioActual, setAnioActual] = createSignal("3er año"); + const [anioActual, setAnioActual] = createSignal("1er año"); const elAnios = {([nombre]) => { diff --git a/src/ContenedorHorarios/Tabla.tsx b/src/ContenedorHorarios/Tabla.tsx index a0cfb27..72c8817 100644 --- a/src/ContenedorHorarios/Tabla.tsx +++ b/src/ContenedorHorarios/Tabla.tsx @@ -1,5 +1,5 @@ import { StyleSheet, css } from "aphrodite"; -import { createEffect, createMemo, createState, For } from "solid-js"; +import { createEffect, createMemo, createSignal, createState, For } from "solid-js"; import { estilosGlobales } from "../Estilos"; import { AnioData } from "../types/DatosHorario"; import { dias, horas, horasDescanso } from "../Store"; @@ -10,6 +10,9 @@ const e = StyleSheet.create({ zIndex: 2, transition: "background-color 250ms", marginLeft: "4rem", + display: "flex", + alignItems: "center", + minHeight: "1rem", ":hover": { // backgroundColor: "rgba(200, 200, 200, 0.25)" } @@ -43,24 +46,16 @@ const e = StyleSheet.create({ padding: "0.25rem 0.35rem", cursor: "pointer", borderRadius: "5px", - ":hover": { - backgroundColor: "rgba(200, 200, 200, 0.25)" - } + transition: "background-color 100ms" + }, + celdaCursoActiva: { + backgroundColor: "rgba(200, 200, 200, 0.25)" }, celdaCursoTeoria: { fontWeight: "bold" } }); -/* -TODO: Configurar state. - Que el padre pase un objeto state con todos los cursos e info adicional sobre los cursos: - Si seleccionado, - si solo teoria o lab, - cual grupo - y aqui resaltar adecuadamente. -*/ - interface DataProcesada { [hora: string]: { [dia: string]: { @@ -134,24 +129,14 @@ const procesarAnio = (data: AnioData, anio: string, version: number) => { } export function Tabla(props: { data: AnioData, anio: string, version: number }) { - const anio = () => props.anio.substring(0, props.anio.indexOf(" ")); const data = createMemo(() => procesarAnio(props.data, anio(), props.version)); + const [idHover, setIdHover] = createSignal(""); - return
-
- - {dia => -
- {dia} -
- } -
-
- + const celdas = createMemo(() => { + console.log("Renderizar tabla", props.anio); + return {hora => { - const c = anio(); - console.log(c); return
{hora.substring(0, 5)} @@ -166,11 +151,18 @@ export function Tabla(props: { data: AnioData, anio: string, version: number }) return
- {({txt, esLab}) => - + {({id, txt, esLab}) => { + + const clases = () => { + const clases = [e.celdaCurso, !esLab && e.celdaCursoTeoria]; + if (id === idHover()) clases.push(e.celdaCursoActiva); + return css(...clases); + }; + + return setIdHover(id)}> {txt} - - } + ; + }}
; }} @@ -180,5 +172,18 @@ export function Tabla(props: { data: AnioData, anio: string, version: number })
; }} + }); + + return
+
+ + {dia => +
+ {dia} +
+ } +
+
+ {celdas()}
} \ No newline at end of file