Arreglar error: al cambiar a otro año y regresar se perdia la habilidad de resaltar y seleccionar

master
Araozu 2021-03-28 08:19:04 -05:00
parent c9de86d82c
commit 3d07c25ee9
3 changed files with 13 additions and 4 deletions

View File

@ -116,7 +116,7 @@ export function MiHorario(props: MiHorarioProps) {
</div> </div>
<CursosElem <CursosElem
version={Number(Math.random() * 1_000_000)} version={Math.floor(Math.random() * 1_000_000)}
anioActual={() => "Mi horario"} anioActual={() => "Mi horario"}
dataAnio={datosMiHorario()} dataAnio={datosMiHorario()}
fnAgregarCurso={props.fnAgregarCurso} fnAgregarCurso={props.fnAgregarCurso}

View File

@ -1,6 +1,6 @@
import { StyleSheet, css } from "aphrodite" import { StyleSheet, css } from "aphrodite"
import { estilosGlobales } from "../../Estilos" import { estilosGlobales } from "../../Estilos"
import { For, createSignal, createMemo, createEffect } from "solid-js" import { For, createSignal, createMemo, createEffect, onCleanup } from "solid-js"
import { Dia } from "../../Store" import { Dia } from "../../Store"
import { DatosGrupo } from "../../types/DatosHorario" import { DatosGrupo } from "../../types/DatosHorario"
import { TablaObserver } from "../TablaObserver" import { TablaObserver } from "../TablaObserver"
@ -113,6 +113,11 @@ export function CeldaFila(props: Props) {
const [estabaResaltado, setEstabaResaltado] = createSignal(false) const [estabaResaltado, setEstabaResaltado] = createSignal(false)
// Limpiar los memos, porque cuando se desmonta la celda esos memos quedan sin efecto
onCleanup(() => {
props.tablaObserver.limpiar()
})
const clases = createMemo( const clases = createMemo(
() => { () => {
const clases = [ const clases = [

View File

@ -1,4 +1,4 @@
import { createMemo, createState, SetStateFunction, State, produce, createEffect } from "solid-js" import { createMemo, createState, SetStateFunction, State, produce, createEffect, untrack } from "solid-js"
import { DatosGrupo } from "../types/DatosHorario" import { DatosGrupo } from "../types/DatosHorario"
const createMemoDefault = <T>(f: () => T) => createMemo<T>( const createMemoDefault = <T>(f: () => T) => createMemo<T>(
@ -101,7 +101,7 @@ export class TablaObserver {
}) })
// Registrar curso en `seleccionado` // Registrar curso en `seleccionado`
this.setSeleccionado((obj) => { this.setSeleccionado((obj: State<ISeleccionado>) => {
const nuevoObj = {...obj} const nuevoObj = {...obj}
if (!nuevoObj[anio]) { if (!nuevoObj[anio]) {
@ -210,4 +210,8 @@ export class TablaObserver {
grupo: undefined, grupo: undefined,
}) })
} }
limpiar() {
this.memos = {}
}
} }