From 3d07c25ee9a1c7f2bec5b975eb531f97b49267e3 Mon Sep 17 00:00:00 2001 From: Araozu Date: Sun, 28 Mar 2021 08:19:04 -0500 Subject: [PATCH] =?UTF-8?q?Arreglar=20error:=20al=20cambiar=20a=20otro=20a?= =?UTF-8?q?=C3=B1o=20y=20regresar=20se=20perdia=20la=20habilidad=20de=20re?= =?UTF-8?q?saltar=20y=20seleccionar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ContenedorHorarios/MiHorario.tsx | 2 +- src/ContenedorHorarios/Tabla/CeldaFila.tsx | 7 ++++++- src/ContenedorHorarios/TablaObserver.ts | 8 ++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) 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 = {} + } }