Incorporar CursosElem a Mi Horario
This commit is contained in:
parent
a586c780ca
commit
f3fffe25e5
@ -120,7 +120,11 @@ export function ContenedorHorarios() {
|
|||||||
|
|
||||||
return <div className={css(e().contenedor)}>
|
return <div className={css(e().contenedor)}>
|
||||||
<div>
|
<div>
|
||||||
<MiHorario estadoLayout={estadoLayout()} setEstadoLayout={setEstadoLayout} cursosUsuario={cursosUsuario}/>
|
<MiHorario estadoLayout={estadoLayout()}
|
||||||
|
setEstadoLayout={setEstadoLayout}
|
||||||
|
cursosUsuario={cursosUsuario}
|
||||||
|
fnAgregarCurso={agregarCursoUsuario}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Show when={datosCargados()}>
|
<Show when={datosCargados()}>
|
||||||
|
@ -19,6 +19,9 @@ const e = StyleSheet.create({
|
|||||||
display: "inline-block",
|
display: "inline-block",
|
||||||
verticalAlign: "top"
|
verticalAlign: "top"
|
||||||
},
|
},
|
||||||
|
cursoOculto: {
|
||||||
|
display: "none"
|
||||||
|
},
|
||||||
botonTexto: {
|
botonTexto: {
|
||||||
padding: "0.25rem 0.35rem",
|
padding: "0.25rem 0.35rem",
|
||||||
borderRadius: "5px"
|
borderRadius: "5px"
|
||||||
@ -31,7 +34,8 @@ interface Props {
|
|||||||
fnAgregarCurso: (c: Curso) => void,
|
fnAgregarCurso: (c: Curso) => void,
|
||||||
listaCursosUsuario: ListaCursosUsuario,
|
listaCursosUsuario: ListaCursosUsuario,
|
||||||
idHover: () => string,
|
idHover: () => string,
|
||||||
setIdHover: (v: string) => string
|
setIdHover: (v: string) => string,
|
||||||
|
esCursoMiHorario: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
function IndicadorGrupo(props: { nombre: string, esLab: boolean, idParcial: string, setIdHover: (v: string) => string }) {
|
function IndicadorGrupo(props: { nombre: string, esLab: boolean, idParcial: string, setIdHover: (v: string) => string }) {
|
||||||
@ -68,9 +72,11 @@ export function CursosElem(props: Props) {
|
|||||||
const claseCursoAgregado = css(
|
const claseCursoAgregado = css(
|
||||||
e.contenedorCurso,
|
e.contenedorCurso,
|
||||||
estilosGlobales.contenedor,
|
estilosGlobales.contenedor,
|
||||||
estilosGlobales.contenedorCursorActivo,
|
!props.esCursoMiHorario && estilosGlobales.contenedorCursorActivo,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const claseCursoOculto = css(e.cursoOculto);
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
<For each={Object.entries(props.dataAnio)}>
|
<For each={Object.entries(props.dataAnio)}>
|
||||||
{([_, datosCurso]) => {
|
{([_, datosCurso]) => {
|
||||||
@ -90,10 +96,14 @@ export function CursosElem(props: Props) {
|
|||||||
: `Agregar a mi horario`
|
: `Agregar a mi horario`
|
||||||
);
|
);
|
||||||
|
|
||||||
const claseMemo = createMemo(() => cursoAgregadoMemo()
|
const claseMemo = createMemo(() => {
|
||||||
? claseCursoAgregado
|
if (props.esCursoMiHorario && datosCurso.oculto) {
|
||||||
: claseCursoNoAgregado
|
return claseCursoOculto
|
||||||
);
|
}
|
||||||
|
return cursoAgregadoMemo()
|
||||||
|
? claseCursoAgregado
|
||||||
|
: claseCursoNoAgregado
|
||||||
|
});
|
||||||
|
|
||||||
const profesoresTeoria = createMemo(() => agruparProfesores(datosCurso.Teoria));
|
const profesoresTeoria = createMemo(() => agruparProfesores(datosCurso.Teoria));
|
||||||
const profesoresLab = createMemo(() => agruparProfesores(datosCurso.Laboratorio ?? {}));
|
const profesoresLab = createMemo(() => agruparProfesores(datosCurso.Laboratorio ?? {}));
|
||||||
@ -158,6 +168,6 @@ export function CursosElem(props: Props) {
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
}}
|
}}
|
||||||
</For>
|
</For>
|
||||||
</>;
|
</>;
|
||||||
}
|
}
|
||||||
|
@ -77,13 +77,13 @@ export function Horarios(props: HorariosProps) {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<CursosElem
|
<CursosElem dataAnio={dataTabla()}
|
||||||
dataAnio={dataTabla()}
|
anioActual={anioActual}
|
||||||
anioActual={anioActual}
|
fnAgregarCurso={props.fnAgregarCurso}
|
||||||
fnAgregarCurso={props.fnAgregarCurso}
|
listaCursosUsuario={props.listaCursosUsuario}
|
||||||
listaCursosUsuario={props.listaCursosUsuario}
|
idHover={idHover}
|
||||||
idHover={idHover}
|
setIdHover={setIdHover}
|
||||||
setIdHover={setIdHover}
|
esCursoMiHorario={false}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Match>
|
</Match>
|
||||||
|
@ -3,27 +3,17 @@ import { StyleSheet, css } from "aphrodite";
|
|||||||
import { Tabla } from "./Tabla";
|
import { Tabla } from "./Tabla";
|
||||||
import { mostrarDescansos } from "../Store";
|
import { mostrarDescansos } from "../Store";
|
||||||
import { EstadoLayout } from "./ContenedorHorarios";
|
import { EstadoLayout } from "./ContenedorHorarios";
|
||||||
import { Switch, Match, For, createMemo } from "solid-js";
|
import { Switch, Match, For, createMemo, createSignal } from "solid-js";
|
||||||
import { BotonMaxMin } from "./BotonMaxMin";
|
import { BotonMaxMin } from "./BotonMaxMin";
|
||||||
import { BotonIcono } from "./BotonIcono";
|
import { BotonIcono } from "./BotonIcono";
|
||||||
import { Cursos, ListaCursosUsuario } from "../types/DatosHorario";
|
import { Curso, Cursos, ListaCursosUsuario } from "../types/DatosHorario";
|
||||||
|
import { CursosElem } from "./CursosElem";
|
||||||
|
|
||||||
interface MiHorarioProps {
|
interface MiHorarioProps {
|
||||||
estadoLayout: EstadoLayout,
|
estadoLayout: EstadoLayout,
|
||||||
setEstadoLayout: (v: EstadoLayout) => EstadoLayout,
|
setEstadoLayout: (v: EstadoLayout) => EstadoLayout,
|
||||||
cursosUsuario: ListaCursosUsuario
|
cursosUsuario: ListaCursosUsuario,
|
||||||
}
|
fnAgregarCurso: (c: Curso) => void,
|
||||||
|
|
||||||
function Horario(props: { cursosUsuario: ListaCursosUsuario }) {
|
|
||||||
return <div>
|
|
||||||
<For each={props.cursosUsuario.cursos}>
|
|
||||||
{c => {
|
|
||||||
return <div>
|
|
||||||
<p>{c.abreviado} - {c.nombre}</p>
|
|
||||||
</div>
|
|
||||||
}}
|
|
||||||
</For>
|
|
||||||
</div>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const e = StyleSheet.create({
|
const e = StyleSheet.create({
|
||||||
@ -40,6 +30,7 @@ const e = StyleSheet.create({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export function MiHorario(props: MiHorarioProps) {
|
export function MiHorario(props: MiHorarioProps) {
|
||||||
|
const [idHover, setIdHover] = createSignal("");
|
||||||
|
|
||||||
const datosMiHorario = createMemo(() => {
|
const datosMiHorario = createMemo(() => {
|
||||||
const obj: Cursos = {};
|
const obj: Cursos = {};
|
||||||
@ -119,13 +110,19 @@ export function MiHorario(props: MiHorarioProps) {
|
|||||||
<Tabla data={datosMiHorario()}
|
<Tabla data={datosMiHorario()}
|
||||||
anio={"Mi horario"}
|
anio={"Mi horario"}
|
||||||
version={1}
|
version={1}
|
||||||
idHover={() => ""}
|
idHover={idHover}
|
||||||
setIdHover={(v: string) => ""}
|
setIdHover={setIdHover}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Horario cursosUsuario={props.cursosUsuario}/>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<CursosElem anioActual={() => "Mi horario"}
|
||||||
|
dataAnio={datosMiHorario()}
|
||||||
|
fnAgregarCurso={props.fnAgregarCurso}
|
||||||
|
listaCursosUsuario={props.cursosUsuario}
|
||||||
|
idHover={idHover}
|
||||||
|
setIdHover={setIdHover}
|
||||||
|
esCursoMiHorario={true}
|
||||||
|
/>
|
||||||
</Match>
|
</Match>
|
||||||
<Match when={props.estadoLayout === "MaxHorarios"}>
|
<Match when={props.estadoLayout === "MaxHorarios"}>
|
||||||
<BotonMaxMin
|
<BotonMaxMin
|
||||||
|
Loading…
Reference in New Issue
Block a user