diff --git a/src/ContenedorHorarios/MiHorario.tsx b/src/ContenedorHorarios/MiHorario.tsx index a409dae..bfb6454 100755 --- a/src/ContenedorHorarios/MiHorario.tsx +++ b/src/ContenedorHorarios/MiHorario.tsx @@ -116,7 +116,7 @@ export function MiHorario(props: MiHorarioProps) { "Mi horario"} dataAnio={datosMiHorario()} fnAgregarCurso={props.fnAgregarCurso} diff --git a/src/ContenedorHorarios/Tabla/CeldaFila.tsx b/src/ContenedorHorarios/Tabla/CeldaFila.tsx index 72805d6..e2de317 100755 --- a/src/ContenedorHorarios/Tabla/CeldaFila.tsx +++ b/src/ContenedorHorarios/Tabla/CeldaFila.tsx @@ -1,6 +1,6 @@ import { StyleSheet, css } from "aphrodite" 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 { DatosGrupo } from "../../types/DatosHorario" import { TablaObserver } from "../TablaObserver" @@ -113,6 +113,11 @@ export function CeldaFila(props: Props) { 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 = [ diff --git a/src/ContenedorHorarios/TablaObserver.ts b/src/ContenedorHorarios/TablaObserver.ts index 88d39ca..fedb9e0 100644 --- a/src/ContenedorHorarios/TablaObserver.ts +++ b/src/ContenedorHorarios/TablaObserver.ts @@ -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" const createMemoDefault = (f: () => T) => createMemo( @@ -101,7 +101,7 @@ export class TablaObserver { }) // Registrar curso en `seleccionado` - this.setSeleccionado((obj) => { + this.setSeleccionado((obj: State) => { const nuevoObj = {...obj} if (!nuevoObj[anio]) { @@ -210,4 +210,8 @@ export class TablaObserver { grupo: undefined, }) } + + limpiar() { + this.memos = {} + } }